Require Export Nets.
Definition T0_sep (X:TopologicalSpace) : Prop :=
forall x y:point_set X, x <> y ->
(exists U:Ensemble (point_set X), open U /\ In U x /\ ~ In U y) \/
(exists U:Ensemble (point_set X), open U /\ ~ In U x /\ In U y).
Definition T1_sep (X:TopologicalSpace) : Prop :=
forall x:point_set X, closed (Singleton x).
Definition Hausdorff (X:TopologicalSpace) : Prop :=
forall x y:point_set X, x <> y ->
exists U:Ensemble (point_set X),
exists V:Ensemble (point_set X),
open U /\ open V /\ In U x /\ In V y /\
Intersection U V = Empty_set.
Definition T2_sep := Hausdorff.
Definition topological_property_Hausdorff :
topological_property Hausdorff.
Definition T3_sep (X:TopologicalSpace) : Prop :=
T1_sep X /\
forall (x:point_set X) (F:Ensemble (point_set X)),
closed F -> ~ In F x -> exists U:Ensemble (point_set X),
exists V:Ensemble (point_set X),
open U /\ open V /\ In U x /\ Included F V /\
Intersection U V = Empty_set.

Lemma topological_property_T3_sep : topological_property T3_sep.