(* Proof of lem_x_equiv_in_projQ                                           *)
intros.
unfold projQuotient in |- *.
elim
(axs_comprehension
(fun x0 : E =>
exists z : E,
(exists t : E, x0 = couple z t /\ t = equivClass r a rRel rEqv z))
(cartesien a (quotient r a rRel rEqv rD))
(couple x (equivClass r a rRel rEqv x))); intros;
apply H1; clear H0 H1; intros.
split;
[ idtac
| exists x; exists (equivClass r a rRel rEqv x); split; reflexivity ].
elim
(lem_cartesian_propertie a (quotient r a rRel rEqv rD)
(couple x (equivClass r a rRel rEqv x))); intros;
apply H1; clear H0 H1; intros.
exists x; exists (equivClass r a rRel rEqv x); split;
[ auto with zfc | split; [ idtac | reflexivity ] ].
unfold quotient in |- *.
elim
(axs_comprehension
(fun x0 : E => exists y : E, In y a /\ x0 = equivClass r a rRel rEqv y)
(parties a) (equivClass r a rRel rEqv x)); intros;
apply H1; clear H0 H1; intros.
split;
[ exact (lem_equivClass_in_parties_a r a rRel rEqv x)
| exists x; split; [ auto with zfc | reflexivity ] ].
Qed.
(* End of proof of lem_x_equiv_in_projQ                                    *)

(* Specifications: *)
(***************************************************************************)
(* Encore un lemme a la XXX: x est membre de sa classe d'equivalence       *)
(***************************************************************************)
Lemma lem_x_in_equivClass_x :
forall (r a : E) (rRel : rel_sig r a a) (rEqv : equivalence r a rRel)
(rD : rdom r a a rRel = a) (x : E),
In x a -> In x (equivClass r a rRel rEqv x).