Section neighborhood_net.
Variable X:TopologicalSpace.
Variable x:point_set X.
Inductive neighborhood_net_DS_set : Type :=
| intro_neighborhood_net_DS :
forall (U:Ensemble (point_set X)) (y:point_set X),
open U -> In U x -> In U y -> neighborhood_net_DS_set.
Definition neighborhood_net_DS_ord
(Uy Vz:neighborhood_net_DS_set) : Prop :=
match Uy, Vz with
| intro_neighborhood_net_DS U _ _ _ _,
intro_neighborhood_net_DS V _ _ _ _ =>
Included V U
end.
Definition neighborhood_net_DS : DirectedSet.
refine (Build_DirectedSet neighborhood_net_DS_set
neighborhood_net_DS_ord _ _).
- constructor;
red; intros;
destruct x0.
+ simpl. auto with sets.
+ destruct y, z.
simpl in H, H0.
simpl.
auto with sets.
- intros.
destruct i, j.
assert (open (Intersection U U0)) by
now apply open_intersection2.
assert (In (Intersection U U0) x) by
auto with sets.
exists (intro_neighborhood_net_DS (Intersection U U0) x
H H0 H0).
simpl.
auto with sets.
Defined.
Definition neighborhood_net : Net neighborhood_net_DS X :=
fun (x:neighborhood_net_DS_set) => match x with
| intro_neighborhood_net_DS _ y _ _ _ => y
end.
End neighborhood_net.

Lemma net_limits_determine_topology:
forall {X:TopologicalSpace} (S:Ensemble (point_set X))
(x0:point_set X), In (closure S) x0 ->
exists I:DirectedSet, exists x:Net I X,
(forall i:DS_set I, In S (x i)) /\ net_limit x x0.