(* End of proof of lem_rel_inv_Img                                         *)

(***************************************************************************)
(* Produit de relations                                                    *)
(***************************************************************************)
Definition rel_prod (r1 r2 a : E) (rRel1 : rel_sig r1 a a)
  (rRel2 : rel_sig r2 a a) :=
  subset
    (fun c : E =>
     exists x : E,
       (exists y : E,
          (exists z : E,
             In (couple x y) r1 /\ In (couple y z) r2 /\ c = couple x z)))
    (cartesien a a).

Lemma lem_rel_prod_rel_sig : forall (r1 r2 a : E) (rRel1 : rel_sig r1 a a) (rRel2 : rel_sig r2 a a), rel_sig (rel_prod r1 r2 a rRel1 rRel2) a a.