intros l; elim l; simpl in |- *; auto.
intros a l0 H l2; apply f_equal2 with (f := cons (A:=B)); auto.
Qed.

(* Specifications: *)
(* Properties of flat_map *)
Theorem in_flat_map :
forall (l : list B) (f : B -> list C) a b,
In a (f b) -> In b l -> In a (flat_map f l).