(******** big Intersection *********)

Definition IntersectionProp (F : Ens -> Ens) (X : Ens) :=
  forall Y : Ens, IN X (F Y).Definition Intersection_section1_1_Out : IN Z A := h EmptySet.Definition Intersection_section1_Out : Bounded (IntersectionProp F) :=
  Bounded_th2 (IntersectionProp F) A step2.Definition Intersection_Bounded :
  forall F : Ens -> Ens, Bounded (IntersectionProp F) :=
  Intersection_section1_Out.Definition Intersection (F : Ens -> Ens) : Ens :=
  REPLACEMENT (IntersectionProp F).

(* Specifications: *)
Theorem Intersection_pr1 : forall (F : Ens -> Ens) (X : Ens), IntersectionProp F X -> IN X (Intersection F).
Theorem Intersection_pr2 : forall (F : Ens -> Ens) (X : Ens), IN X (Intersection F) -> IntersectionProp F X.
Theorem Intersection_th1 : forall (F : Ens -> Ens) (X : Ens) (h : forall Y : Ens, IN X (F Y)), IN X (Intersection F).
Theorem Intersection_th2 : forall (F : Ens -> Ens) (X Y : Ens) (i : IN X (Intersection F)), IN X (F Y).