(* End of proof of lem_rel_to_rel_sig                                      *)

(***************************************************************************)
(***************************************************************************)
(* Notions de domaine et d'image d'une relation binaire                    *)
(***************************************************************************)
(***************************************************************************)
Definition rdom (r a b : E) (rRel : rel_sig r a b) :=
  subset (fun x : E => exists y : E, In (couple x y) r) a.Definition rImg (r a b : E) (rRel : rel_sig r a b) :=
  subset (fun y : E => exists x : E, In (couple x y) r) b.Definition rdom2 (r : E) (rRel : rel r) :=
  subset (fun x : E => exists y : E, In (couple x y) r) (reunion (reunion r)).Definition rImg2 (r : E) (rRel : rel r) :=
  subset (fun y : E => exists x : E, In (couple x y) r) (reunion (reunion r)).

(* Specifications: *)
Lemma lem_rdom_eq_rdom2 : forall (r a b : E) (rRel : rel_sig r a b), rdom r a b rRel = rdom2 r (lem_rel_sig_to_rel r a b rRel).
Lemma lem_rImg_eq_rImg2 : forall (r a b : E) (rRel : rel_sig r a b), rImg r a b rRel = rImg2 r (lem_rel_sig_to_rel r a b rRel).
Lemma lem_rel_and_rdom : forall (r a b : E) (rRel : rel_sig r a b) (x y : E), In (couple x y) r -> In x (rdom r a b rRel).
Lemma lem_rel_and_rdom2 : forall (r : E) (rRel : rel r) (x y : E), In (couple x y) r -> In x (rdom2 r rRel).
Lemma lem_rel_and_rImg : forall (r a b : E) (rRel : rel_sig r a b) (x y : E), In (couple x y) r -> In y (rImg r a b rRel).
Lemma lem_rel_and_rImg2 : forall (r : E) (rRel : rel r) (x y : E), In (couple x y) r -> In y (rImg2 r rRel).