Module docstring
{"# Characterization of basic topological properties in terms of ultrafilters "}
{"# Characterization of basic topological properties in terms of ultrafilters "}
Ultrafilter.clusterPt_iff
theorem
{f : Ultrafilter X} : ClusterPt x f ↔ ↑f ≤ 𝓝 x
theorem Ultrafilter.clusterPt_iff {f : Ultrafilter X} : ClusterPtClusterPt x f ↔ ↑f ≤ 𝓝 x :=
⟨f.le_of_inf_neBot', fun h => ClusterPt.of_le_nhds h⟩
clusterPt_iff_ultrafilter
theorem
{f : Filter X} : ClusterPt x f ↔ ∃ u : Ultrafilter X, u ≤ f ∧ u ≤ 𝓝 x
mapClusterPt_iff_ultrafilter
theorem
: MapClusterPt x F u ↔ ∃ U : Ultrafilter α, U ≤ F ∧ Tendsto u U (𝓝 x)
isOpen_iff_ultrafilter
theorem
: IsOpen s ↔ ∀ x ∈ s, ∀ (l : Ultrafilter X), ↑l ≤ 𝓝 x → s ∈ l
mem_closure_iff_ultrafilter
theorem
: x ∈ closure s ↔ ∃ u : Ultrafilter X, s ∈ u ∧ ↑u ≤ 𝓝 x
/-- `x` belongs to the closure of `s` if and only if some ultrafilter
supported on `s` converges to `x`. -/
theorem mem_closure_iff_ultrafilter :
x ∈ closure sx ∈ closure s ↔ ∃ u : Ultrafilter X, s ∈ u ∧ ↑u ≤ 𝓝 x := by
simp [closure_eq_cluster_pts, ClusterPt, ← exists_ultrafilter_iff, and_comm]
isClosed_iff_ultrafilter
theorem
: IsClosed s ↔ ∀ x, ∀ u : Ultrafilter X, ↑u ≤ 𝓝 x → s ∈ u → x ∈ s
theorem isClosed_iff_ultrafilter : IsClosedIsClosed s ↔
∀ x, ∀ u : Ultrafilter X, ↑u ≤ 𝓝 x → s ∈ u → x ∈ s := by
simp [isClosed_iff_clusterPt, ClusterPt, ← exists_ultrafilter_iff]
continuousAt_iff_ultrafilter
theorem
: ContinuousAt f x ↔ ∀ g : Ultrafilter X, ↑g ≤ 𝓝 x → Tendsto f g (𝓝 (f x))
theorem continuousAt_iff_ultrafilter :
ContinuousAtContinuousAt f x ↔ ∀ g : Ultrafilter X, ↑g ≤ 𝓝 x → Tendsto f g (𝓝 (f x)) :=
tendsto_iff_ultrafilter f (𝓝 x) (𝓝 (f x))
continuous_iff_ultrafilter
theorem
: Continuous f ↔ ∀ (x) (g : Ultrafilter X), ↑g ≤ 𝓝 x → Tendsto f g (𝓝 (f x))
theorem continuous_iff_ultrafilter :
ContinuousContinuous f ↔ ∀ (x) (g : Ultrafilter X), ↑g ≤ 𝓝 x → Tendsto f g (𝓝 (f x)) := by
simp only [continuous_iff_continuousAt, continuousAt_iff_ultrafilter]