(* End of proof of lem_reunion_couple                                      *)

(* Definitions des projections par comprehension                           *)
Definition first (c : E) :=
  subset
    (fun x : E => exists a : E, (exists b : E, c = couple a b /\ In x a))
    (reunion (reunion c)).Definition second (c : E) :=
  subset
    (fun x : E => exists a : E, (exists b : E, c = couple a b /\ In x b))
    (reunion (reunion c)).

(* Specifications: *)
Lemma lem_first_propertie : forall a b : E, first (couple a b) = a.
Lemma lem_second_propertie : forall a b : E, second (couple a b) = b.
Lemma lem_couple_reunion_prop : forall x y z : E, In (couple x y) z -> In x (reunion (reunion z)) /\ In y (reunion (reunion z)).