proposition: Lemma app_subset : forall T, forall l1 l2 l3 : list T, subset (l1 ++ l2) l3 <=> subset l1 l3 # subset l2 l3.
proof: Proof. induction l1; simpl; sp; try(split; sp; fail). trw cons_subset. trw cons_subset. split; introv Hlin; repnd; try(trw IHl1); try(trw_h IHl1 Hlin; repnd); repeat(auto;split;auto). Qed.
imports: UsefulTypes bin_rels Omega