(* Proof of lem_fun_equiv_dom                                              *)
intros; apply axs_extensionnalite; unfold iff in |- *; split; intros.
unfold rdom in H.
elim
(axs_comprehension
(fun x : E => exists y : E, In (couple x y) (equiv_fun f Af))
(dom f) v2); intros; generalize (H0 H); clear H H0 H1;
intros.
elim H; clear H; intros; auto with zfc.
unfold rdom in |- *.
elim
(axs_comprehension
(fun x : E => exists y : E, In (couple x y) (equiv_fun f Af))
(dom f) v2); intros; apply H1; clear H0 H1; intros.
split; [ auto with zfc | exists v2; unfold equiv_fun in |- * ].
elim
(axs_comprehension
(fun x : E =>
exists a : E, (exists b : E, x = couple a b /\ App f Af a = App f Af b))
(cartesien (dom f) (dom f)) (couple v2 v2)); intros;
apply H1; clear H0 H1; intros.
split; [ idtac | exists v2; exists v2; split; reflexivity ].
elim (lem_cartesian_propertie (dom f) (dom f) (couple v2 v2)); intros;
apply H1; clear H0 H1; intros.
exists v2; exists v2; split;
[ auto with zfc | split; [ auto with zfc | reflexivity ] ].
Qed.
(* End of proof of lem_fun_equiv_dom                                       *)

(* Specifications: *)
Lemma lem_sig_fun_equiv_dom :
forall (f a s : E) (Afs : fun_sig f a s),
rdom (equiv_fun f (lem_fun_sig_is_fun f a s Afs)) a a
(lem_sig_fun_equiv_is_rel f a s Afs) = a.