(* Definition infinite_list_c P := ~ exists L, forall s, P s <-> In s L. *)
Definition infinite_fun P := exists f : nat -> term, forall n, P (f n) /\ forall m, m < n -> f m <> f n.Definition really_infinite P := ~ exists L, forall x, P x -> x el L.Definition infinite P := forall n, ~~ exists A, card A >= n /\  forall x, x el A -> P x.

Lemma infinite_list B L : infinite B -> ~~ exists s, B s /\ ~ s el L.