(*************************************)
(************ Powerset  **************)
(*************************************)




Definition Powerset (X : Ens) := REPLACEMENT (fun Y : Ens => SUB Y X).

(* Specifications: *)
Theorem Powerset_pr1 : forall (X Y : Ens) (h : SUB Y X), IN Y (Powerset X).
Theorem Powerset_pr2 : forall (X Y : Ens) (i : IN Y (Powerset X)), SUB Y X.
Lemma power0_Out : IN Zero (Powerset A).
Theorem Powerset_th1 : forall A : Ens, IN Zero (Powerset A).
Lemma power1_Out1 : IN (union X Y) (Powerset A).
Lemma power1_Out2 : IN (intersection X Y) (Powerset A).
Theorem Powerset_th2 : forall (A X Y : Ens) (x : IN X (Powerset A)) (y : IN Y (Powerset A)), IN (union X Y) (Powerset A).
Theorem Powerset_th3 : forall (A X Y : Ens) (x : IN X (Powerset A)), (* (y : (IN Y (Powerset A))) *) IN (intersection X Y) (Powerset A).
Lemma power2_Out : IN (Singleton X) (Powerset A).
Theorem Powerset_th4 : forall (A X : Ens) (x : IN X A), IN (Singleton X) (Powerset A).
Lemma power3_Out : IN (Doubleton X Y) (Powerset A).
Theorem Powerset_th5 : forall (A X Y : Ens) (x : IN X A) (y : IN Y A), IN (Doubleton X Y) (Powerset A).
Lemma power4_Out : IN (Second X) (Powerset P).
Theorem Powerset_th6 : forall (A X : Ens) (x : IN X A), IN (Second X) (Powerset (Powerset A)).
Lemma power5_Out : IN X (Powerset B).
Theorem Powerset_th7 : forall (A B : Ens) (a : SUB A B), SUB (Powerset A) (Powerset B).