(* Proof of lem_equiv_comp_is_fun                                          *)
intros; unfold fun_ in |- *; intros.
split; intros.
exists (quotient r a rRel rEqv rD); exists s; unfold inc in |- *; intros.
unfold equiv_comp in H.
elim
(axs_comprehension
(fun z : E =>
exists x : E,
In x a /\
z =
couple (equivClass r a rRel rEqv x)
(App f (lem_fun_sig_is_fun f a s Afs) x))
(cartesien (quotient r a rRel rEqv rD) s) v0);
intros; generalize (H0 H); clear H H0 H1; intros.
elim H; clear H; intros; auto with zfc.
unfold equiv_comp in H.
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 y));
intros; generalize (H1 H); clear H H1 H2; intros.
elim H; clear H; intros; elim H1; clear H1; intros; elim H1; clear H1; intros.
elim
(lem_couple_propertie x (equivClass r a rRel rEqv x0) y
(App f (lem_fun_sig_is_fun f a s Afs) x0)); intros;
generalize (H3 H2); clear H2 H3 H4; intros.
elim H2; clear H2; intros.
unfold equiv_comp in H0.
elim
(axs_comprehension
(fun z0 : E =>
exists x0 : E,
In x0 a /\
z0 =
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 z));
intros; generalize (H4 H0); clear H0 H4 H5; intros.
elim H0; clear H0; intros; elim H4; clear H4; intros; elim H4; clear H4;
intros.
elim
(lem_couple_propertie x (equivClass r a rRel rEqv x1) z
(App f (lem_fun_sig_is_fun f a s Afs) x1)); intros;
generalize (H6 H5); clear H5 H6 H7; intros; elim H5;
clear H5; intros.
generalize H5; clear H5; rewrite H2; intros.
generalize (lem_equivClass_is_same r a rRel rEqv rD x0 x1 H1 H4 H5); intros.
generalize (Pr x0 x1 H7); intros.
rewrite H3; rewrite H6; rewrite H8; reflexivity.
Qed.
(* End of proof of lem_equiv_comp_is_fun                                   *)

(* Specifications: *)
(***************************************************************************)
(* Le domaine de equiv_comp est l'ensemble quotient                        *)
(***************************************************************************)
Lemma lem_equiv_comp_dom :
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),
dom (equiv_comp r a rRel rEqv rD s f Afs Pr) = quotient r a rRel rEqv rD.