intros x x0.
simple induction b.
intro.
apply (dans_empty_imp_P x); auto.
intros a b0 H.
simpl in |- *.
intro.
cut (couple x0 a = x :>Elt \/ dans x (singleprod x0 b0)).
2: apply dans_add; auto.
intro H1; elim H1; clear H1.
intro.
exists a; auto.
intro.
cut (exists y : Elt, x = couple x0 y /\ dans y b0); auto.
intro H2; elim H2; clear H2.
intros.
exists x1.
elim H2; clear H2.
intros.
split; auto.
Qed.
(*  On peut ensuite en deduire que si x est dans AxB alors x est de la	*)
(*  forme (x1,x2) avec x1 dans A et x2 dans B.				*)

(* Specifications: *)
Lemma coupl3 :
forall (a b : Ensf) (x : Elt),
dans x (prodcart a b) ->
exists x1 : Elt,
(exists x2 : Elt, dans x1 a /\ dans x2 b /\ x = couple x1 x2).