intros A B f b xs; elim xs; simpl in |- *; auto.
intros H'; elim H'; auto.
intros a l H' H'0; elim H'0;
[ intros H'1; clear H'0 | intros H'1; clear H'0 ];
auto.
exists a; split; auto.
elim H'; [ intros a0 E; elim E; intros H'2 H'3; clear E H' | clear H' ]; auto.
exists a0; split; auto.
Qed.

Lemma map_app :
forall (A B : Set) (f : A -> B) (l1 l2 : list A),
map f (l1 ++ l2) = map f l1 ++ map f l2.