proposition: Lemma uniq_app_4 : uniq E -> uniq F -> disjoint E F -> uniq (E ++ F).
proof: Proof. clear. intros HE HF Hd. alist induction E as [ | x1 a1 E' ]. auto. inversion HE; subst. rewrite app_assoc. apply uniq_push. rewrite disjoint_app_l, disjoint_one_l in *. intuition. rewrite disjoint_app_l, disjoint_one_l, dom_app in *. fsetdec. 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