proposition: Lemma disjoint_app_l : forall A, forall l1 l2 l3 : list A, disjoint (l1 ++ l2) l3 <=> (disjoint l1 l3 # disjoint l2 l3).
proof: Proof. induction l1; simpl; sp; split; sp. alltrewrite disjoint_cons_l; trw_h IHl1 H; sp. alltrewrite disjoint_cons_l; trw_h IHl1 H; sp. alltrewrite disjoint_cons_l; sp. trw IHl1; sp. Qed.
imports: UsefulTypes bin_rels Omega