Require Export Nets.

(* Specifications: *)
Lemma metric_space_net_limit: forall (X:TopologicalSpace)
(d:point_set X -> point_set X -> R), metrizes X d ->
forall (I:DirectedSet) (x:Net I X) (x0:point_set X),
(forall eps:R, eps > 0 -> for large i:DS_set I, d x0 (x i) < eps) ->
net_limit x x0.
Lemma metric_space_net_limit_converse: forall (X:TopologicalSpace)
(d:point_set X -> point_set X -> R), metrizes X d ->
forall (I:DirectedSet) (x:Net I X) (x0:point_set X),
net_limit x x0 -> forall eps:R, eps > 0 ->
for large i:DS_set I, d x0 (x i) < eps.
Lemma metric_space_net_cluster_point: forall (X:TopologicalSpace)
(d:point_set X -> point_set X -> R), metrizes X d ->
forall (I:DirectedSet) (x:Net I X) (x0:point_set X),
(forall eps:R, eps > 0 ->
exists arbitrarily large i:DS_set I, d x0 (x i) < eps) ->
net_cluster_point x x0.
Lemma metric_space_net_cluster_point_converse: forall (X:TopologicalSpace)
(d:point_set X -> point_set X -> R), metrizes X d ->
forall (I:DirectedSet) (x:Net I X) (x0:point_set X),
net_cluster_point x x0 -> forall eps:R, eps > 0 ->
exists arbitrarily large i:DS_set I, d x0 (x i) < eps.
Lemma first_countable_sequence_closure:
forall (X:TopologicalSpace) (S:Ensemble (point_set X)) (x:point_set X),
first_countable X -> In (closure S) x ->
exists y:Net nat_DS X, (forall n:nat, In S (y n)) /\
net_limit y x.