proposition: Lemma Forall2_cons_l_inv : forall P r1 s x, Forall2 P (x::r1) s -> exists y s1, s = y::s1 /\ P x y /\ Forall2 P r1 s1.
proof: Proof. Proof using. introv E. destruct s as [|y s1]; inverts E. autos*. Qed.
imports: Coq.Classes.Morphisms TLC(LibTactics LibLogic LibReflect LibOperation LibProd LibOption LibNat LibInt LibWf LibMonoid LibRelation)