End ListFun1'.

(* Specifications: *)
Lemma Forall2_impl: forall {A B: Type} (P Q: A -> B -> Prop),
(forall a b, P a b -> Q a b) ->
(forall (lA: list A) (lB: list B), Forall2 P lA lB -> Forall2 Q lA lB).
Lemma Forall2_rev: forall {A B: Type} (P: A -> B -> Prop),
forall (lA: list A) (lB: list B), Forall2 (fun b a => P a b) lB lA -> Forall2 P lA lB.