Definition neighborhood_filter {X:TopologicalSpace} (x0:point_set X) :
  Filter (point_set X).Definition filter_limit {X:TopologicalSpace} (F:Filter (point_set X))
  (x0:point_set X) : Prop :=
  Included (filter_family (neighborhood_filter x0))
           (filter_family F).Definition filter_cluster_point {X:TopologicalSpace}
  (F:Filter (point_set X)) (x0:point_set X) : Prop :=
  forall S:Ensemble (point_set X), In (filter_family F) S ->
  In (closure S) x0.

(* Specifications: *)
Lemma filter_limit_is_cluster_point: forall {X:TopologicalSpace} (F:Filter (point_set X)) (x0:point_set X), filter_limit F x0 -> filter_cluster_point F x0.
Lemma ultrafilter_cluster_point_is_limit: forall {X:TopologicalSpace} (F:Filter (point_set X)) (x0:point_set X), filter_cluster_point F x0 -> ultrafilter F -> filter_limit F x0.
Lemma closure_impl_filter_limit: forall {X:TopologicalSpace} (S:Ensemble (point_set X)) (x0:point_set X), In (closure S) x0 -> exists F:Filter (point_set X), In (filter_family F) S /\ filter_limit F x0.
Lemma continuous_function_preserves_filter_limits: forall (X Y:TopologicalSpace) (f:point_set X -> point_set Y) (x:point_set X) (F:Filter (point_set X)), filter_limit F x -> continuous_at f x -> filter_limit (filter_direct_image f F) (f x).
Lemma func_preserving_filter_limits_is_continuous: forall (X Y:TopologicalSpace) (f:point_set X -> point_set Y) (x:point_set X), (forall F:Filter (point_set X), filter_limit F x -> filter_limit (filter_direct_image f F) (f x)) -> continuous_at f x.