proposition: Lemma list_pred_app : forall (A B : Set)(P : A -> B -> Prop)(lsa1 lsa2 : list A)(lsb : list B), list_pred P (lsa1 ++ lsa2) lsb -> list_pred P lsa1 (firstn (length lsa1) lsb) * list_pred P lsa2 (skipn (length lsa1) lsb).
proof: Proof. induction lsa1; intuition; simpl in *. econstructor. inversion H; clear H; subst. econstructor; intuition. eapply IHlsa1; eauto. inversion H; clear H; subst. eapply IHlsa1; eauto. Qed.
imports: FCF.FCF