(* End of proof of lem_sig_equiv_fun_make                                  *)

(***************************************************************************)
(* Projection sur le quotient                                              *)
(***************************************************************************)
Definition projQuotient (r a : E) (rRel : rel_sig r a a)
  (rEqv : equivalence r a rRel) (rD : rdom r a a rRel = a) :=
  subset
    (fun x : E =>
     exists z : E,
       (exists t : E, x = couple z t /\ t = equivClass r a rRel rEqv z))
    (cartesien a (quotient r a rRel rEqv rD)).

Lemma lem_equivClass_is_same : forall (r a : E) (rRel : rel_sig r a a) (rEqv : equivalence r a rRel) (rD : rdom r a a rRel = a) (x y : E), In x a -> In y a -> equivClass r a rRel rEqv x = equivClass r a rRel rEqv y -> In (couple x y) r.