(* Proof of lem_projQuotient_is_surj                                       *)
intros; unfold fun_surj in |- *.
split;
[ exact (lem_projQuotient_is_fun r a rRel rEqv rD)
| split;
[ exact (lem_projQuotient_dom r a rRel rEqv rD)
| exact (lem_projQuotient_img r a rRel rEqv rD) ] ].
Qed.
(* End of proof of lem_projQuotient_is_surj                                *)

(* Specifications: *)
(***************************************************************************)
(* Le resultat de l'evaluation de x par projQuotient est la classe         *)
(* d'equivalence de x.                                                     *)
(***************************************************************************)
Lemma lem_projQuotient_eval :
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 ->
App (projQuotient r a rRel rEqv rD)
(lem_projQuotient_is_fun r a rRel rEqv rD) x = equivClass r a rRel rEqv x.