induction lsa; inversion 1; intuition; subst; simpl in *;
econstructor.
inversion H; clear H; subst.
trivial.
eauto.
Qed.

(* Specifications: *)
Lemma list_pred_map_l'
: forall (A B C : Set) (lsa : list A) (lsb : list B) (P : C -> B -> Prop) (f : A -> C),
list_pred (fun a b => P (f a) b) lsa lsb ->
list_pred P (map f lsa) lsb.
Theorem list_pred_rev :
forall (A B : Set)(lsa : list A)(lsb : list B) P,
list_pred P lsa lsb ->
forall a b,
P a b ->
list_pred P (lsa ++ (a :: nil)) (lsb ++ (b :: nil)).