Require Export TopologicalSpaces.
Require Export Ensembles.
Require Export InteriorsClosures.
Definition open_neighborhood {X:TopologicalSpace}
(U:Ensemble (point_set X)) (x:point_set X) :=
open U /\ In U x.
Definition neighborhood {X:TopologicalSpace}
(N:Ensemble (point_set X)) (x:point_set X) :=
exists U:Ensemble (point_set X),
open_neighborhood U x /\ Included U N.

(* Specifications: *)
Lemma open_neighborhood_is_neighborhood: forall {X:TopologicalSpace}
(U:Ensemble (point_set X)) (x:point_set X),
open_neighborhood U x -> neighborhood U x.
Lemma neighborhood_interior: forall {X:TopologicalSpace}
(N:Ensemble (point_set X)) (x:point_set X),
neighborhood N x -> In (interior N) x.
Lemma interior_neighborhood: forall {X:TopologicalSpace}
(N:Ensemble (point_set X)) (x:point_set X),
In (interior N) x -> neighborhood N x.