proposition: Lemma binds_app_uniq_1 : uniq (E ++ F) -> binds x a (E ++ F) -> (binds x a E /\ ~ In x (dom F)) \/ (binds x a F /\ ~ In x (dom E)).
proof: Proof. clear. intros J1 J2. rewrite uniq_app_iff in J1. unfold disjoint in J1. rewrite binds_app_iff in J2. assert (~ In x (dom F) \/ ~ In x (dom E)) by fsetdec. intuition eauto using binds_dom_contradiction. Qed.
imports: Coq.FSets.FSets Coq.Lists.List Coq.Logic.Decidable Coq.Strings.String String Metalib.CoqFSetDecide Metalib.CoqListFacts Metalib.LibTactics Metalib.CoqFSetInterface Coq.Classes.Equivalence Coq.Classes.EquivDec Metalib.CoqEqDec