(* Proof of lem_equiv_comp_img                                             *)
unfold inc in |- *; intros.
elim Afs; intros; elim H1; clear H1; intros.
unfold Img in H.
elim
(axs_comprehension
(fun v1 : E =>
fun_ (equiv_comp r a rRel rEqv rD s f Afs Pr) ->
exists v2 : E,
In (couple v2 v1) (equiv_comp r a rRel rEqv rD s f Afs Pr))
(reunion (reunion (equiv_comp r a rRel rEqv rD s f Afs Pr))) v0);
intros; generalize (H3 H); clear H H3 H4; intros.
elim H; clear H; intros.
elim (H3 (lem_equiv_comp_is_fun r a rRel rEqv rD s f Afs Pr)); clear H3;
intros.
unfold equiv_comp in H3.
elim
(axs_comprehension
(fun z : E =>
exists x0 : E,
In x0 a /\
z =
couple (equivClass r a rRel rEqv x0)
(App f (lem_fun_sig_is_fun f a s Afs) x0))
(cartesien (quotient r a rRel rEqv rD) s) (couple x v0));
intros; generalize (H4 H3); clear H3 H4 H5; intros.
elim H3; clear H3; intros; clear H4.
elim (lem_cartesian_propertie (quotient r a rRel rEqv rD) s (couple x v0));
intros; generalize (H4 H3); clear H3 H4 H5; intros.
elim H3; clear H3; intros; elim H3; clear H3; intros; elim H3; clear H3;
intros; elim H4; clear H4; intros.
elim (lem_couple_propertie x x0 v0 x1); intros; generalize (H6 H5);
clear H5 H6 H7; intros; elim H5; clear H5; intros.
generalize H4; rewrite H6; tauto.
Qed.
(* End of proof of lem_equiv_comp_img                                      *)

(* Specifications: *)
(***************************************************************************)
(* D'ou la signature de equiv_comp ...                                     *)
(***************************************************************************)
Lemma lem_equiv_comp_sig :
forall (r a : E) (rRel : rel_sig r a a) (rEqv : equivalence r a rRel)
(rD : rdom r a a rRel = a) (s f : E) (Afs : fun_sig f a s)
(Pr : forall x y : E,
In (couple x y) r ->
App f (lem_fun_sig_is_fun f a s Afs) x =
App f (lem_fun_sig_is_fun f a s Afs) y),
fun_sig (equiv_comp r a rRel rEqv rD s f Afs Pr) (quotient r a rRel rEqv rD)
s.