induction ls; intuition; simpl in *.
destruct (P a).
simpl.
rewrite fold_and_false_init.
trivial.
eapply IHls.
Qed.

Theorem fst_split_eq_list_pred :
forall (A B : Set)(ls1 : list (A * B))(ls2 : list A),
list_pred (fun a b => fst a = b) ls1 ls2 ->
fst (split ls1) = ls2.