(* End of proof of lem_rel_inter_prop                                      *)

(***************************************************************************)
(* Relation inverse                                                        *)
(***************************************************************************)
Definition rel_inverse (r a b : E) (rRel : rel_sig r a b) :=
  subset
    (fun c : E =>
     exists x : E, (exists y : E, In (couple x y) r /\ c = couple y x))
    (cartesien b a).

(* Specifications: *)
Lemma lem_rel_inv_is_rel_sig : forall (r a b : E) (rRel : rel_sig r a b), rel_sig (rel_inverse r a b rRel) b a.
Lemma lem_rel_inv_dom : forall (r a b : E) (rRel : rel_sig r a b), rdom (rel_inverse r a b rRel) b a (lem_rel_inv_is_rel_sig r a b rRel) = rImg r a b rRel.
Lemma lem_rel_inv_Img : forall (r a b : E) (rRel : rel_sig r a b), rImg (rel_inverse r a b rRel) b a (lem_rel_inv_is_rel_sig r a b rRel) = rdom r a b rRel.