(******************************************************)
(******************************************************)
(**************   FUNCTIONS         *******************)
(******************************************************)
(******************************************************)



(********** in order to bound Domain and Range we first ********)
(********** define  Total   ***********)

Definition UnionPlus (F : Ens) := union F (Union F).Definition Total (R : Ens) := UnionPlus (UnionPlus (UnionPlus R)).

(* Specifications: *)
Theorem UnionPlus_th1 : forall (X F : Ens) (i : IN X F), IN X (UnionPlus F).
Theorem UnionPlus_th2 : forall (X U F : Ens) (i : IN X U) (j : IN U F), IN X (UnionPlus F).
Lemma total_th1_Out : IN X (Total F).
Theorem Total_th1 : forall (X F : Ens) (i : IN X F), IN X (Total F).
Lemma total_th2_Out : IN X (Total F).
Theorem Total_th2 : forall (X Y F : Ens) (i : IN X Y) (j : IN Y F), IN X (Total F).
Lemma total_th3_Out : IN X (Total F).
Theorem Total_th3 : forall (X Y Z F : Ens) (i : IN X Y) (j : IN Y Z) (k : IN Z F), IN X (Total F).
Lemma total_th4_Out : IN X (Total F).
Theorem Total_th4 : forall (X Y Z W F : Ens) (i : IN X Y) (j : IN Y Z) (k : IN Z W) (l : IN W F), IN X (Total F).
Lemma total_and_pairs_1_OutA : IN A (Total R).
Lemma total_and_pairs_1_OutB : IN B (Total R).
Theorem Relation_Total_th1 : forall (R A B : Ens) (i : IN (PAIR A B) R), IN A (Total R).
Theorem Relation_Total_th2 : forall (R A B : Ens) (i : IN (PAIR A B) R), IN B (Total R).