(* Proof of lem_sig_fun_equiv_dom                                          *)
intros; unfold rdom in |- *; apply axs_extensionnalite; unfold iff in |- *;
split; intros.
elim
(axs_comprehension
(fun x : E =>
exists y : E,
In (couple x y) (equiv_fun f (lem_fun_sig_is_fun f a s Afs))) a v2);
intros; generalize (H0 H); clear H H0 H1; intros;
elim H; clear H; intros; auto with zfc.
elim
(axs_comprehension
(fun x : E =>
exists y : E,
In (couple x y) (equiv_fun f (lem_fun_sig_is_fun f a s Afs))) a v2);
intros; apply H1; clear H0 H1; intros.
split; [ auto with zfc | idtac ].
exists v2; unfold equiv_fun in |- *.
elim
(axs_comprehension
(fun x : E =>
exists a0 : E,
(exists b : E,
x = couple a0 b /\
App f (lem_fun_sig_is_fun f a s Afs) a0 =
App f (lem_fun_sig_is_fun f a s Afs) 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 Afs; intros; elim H1; clear H1; intros; rewrite H1.
elim (lem_cartesian_propertie a a (couple v2 v2)); intros; apply H4;
clear H3 H4; intros.
exists v2; exists v2; split;
[ auto with zfc | split; [ auto with zfc | reflexivity ] ].
Qed.
(* End of proof of lem_sig_fun_equiv_dom                                   *)

(* Specifications: *)
Lemma lem_fun_equiv_prop :
forall (f : E) (Af : fun_ f) (x y : E),
In (couple x y) (equiv_fun f Af) -> App f Af x = App f Af y.