intros A B f l; elim l; simpl in |- *; auto.
intros a l0 H'; rewrite <- H'; simpl in |- *; auto.
apply trans_equal with (y := map f (rev l0) ++ map f (a :: nil)); auto.
apply map_app; auto.
Qed.

(* Specifications: *)
Lemma rev_in : forall (A : Set) (a : A) (l : list A), In a (rev l) -> In a l.
intros A a l; elim l; simpl in |- *; auto.