(* Proof of lem_exp_elem_dom                                               *)
generalize (lem_exp_elem_is_fun a b f H); intros; unfold exp in H.
elim
(axs_comprehension
(fun f0 : E =>
forall x : E, In x b -> exUniq E (fun y : E => In (couple x y) f0))
(parties (cartesien b a)) f); intros; generalize (H1 H);
clear H H1 H2; intros.
elim H; clear H; intros.
generalize H; intros.
elim (axs_parties (cartesien b a) f); intros; generalize (H3 H2);
clear H2 H3 H4; intros.
apply axs_extensionnalite; unfold iff in |- *; split; intros.
generalize (lem_App f v2 H0 H3); intros.
elim H4; clear H4; intros; elim H4; clear H4; intros.
generalize (H2 (couple v2 x) H5); clear H2 H5; intros.
elim (lem_cartesian_propertie b a (couple v2 x)); intros; generalize (H5 H2);
clear H2 H5 H6; intros.
elim H2; clear H2; intros; elim H2; clear H2; intros; elim H2; clear H2;
intros; elim H5; clear H5; intros.
elim (lem_couple_propertie v2 x0 x x1); intros; generalize (H7 H6);
clear H6 H7 H8; intros.
elim H6; clear H6; intros.
rewrite H6; auto with zfc.
generalize (H1 v2 H3); clear H1 H3; intros.
unfold exUniq in H1.
elim H1; clear H1; intros; elim H1; clear H1; intros.
exact (lem_fun_and_dom f v2 x H0 H1).
Qed.
(* End of proof of lem_exp_elem_dom                                        *)

(* Specifications: *)
(***************************************************************************)
(* L'image d'un element de (exp a b) est incluse dans a                    *)
(***************************************************************************)
Lemma lem_exp_elem_img : forall a b f : E, In f (exp a b) -> inc (Img f) a.
intros; unfold inc in |- *; intros.