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

Lemma list_pred_symm : forall (A B : Set)(P : A -> B -> Prop) lsa lsb, list_pred (fun b a => P a b) lsb lsa -> list_pred P lsa lsb.