+ intros H; induction H; try constructor.
replace (a::l2) with (nil ++ a::l2) by auto; constructor; auto.
replace (cons a l2) with (app (cons a nil) l2) by auto.
inversion IHsubseq. constructor. rewrite app_assoc. constructor.
auto.
+ intros. induction H.
induction l; constructor; auto.
induction l1.
simpl; constructor; auto.
simpl.
constructor; auto.
Qed.

(* Specifications: *)
Lemma subseq_trans: forall {A} (l1 l2 l3: list A), subseq l1 l2 -> subseq l2 l3 -> subseq l1 l3.
+ constructor.