Fixpoint forNats(n : nat) :=
  match n with
      | 0 => nil
      | S n' =>
        cons n' (forNats n')
  end.

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