Documentation

Mathlib.Topology.Compactification.OnePoint

The OnePoint Compactification #

We construct the OnePoint compactification (the one-point compactification) of an arbitrary topological space X and prove some properties inherited from X.

Main definitions #

Main results #

Tags #

one-point compactification, Alexandroff compactification, compactness

Definition and basic properties #

In this section we define OnePoint X to be the disjoint union of X and , implemented as Option X. Then we restate some lemmas about Option X for OnePoint X.

def OnePoint (X : Type u_3) :
Type u_3

The OnePoint extension of an arbitrary topological space X

Equations
instance instReprOnePoint {X : Type u_1} [Repr X] :

The repr uses the notation from the OnePoint locale.

Equations
@[match_pattern]
def OnePoint.infty {X : Type u_1} :

The point at infinity

Equations

The point at infinity

Equations
@[match_pattern]
def OnePoint.some {X : Type u_1} :
XOnePoint X

Coercion from X to OnePoint X.

Equations
@[simp]
theorem OnePoint.some_eq_iff {X : Type u_1} (x₁ x₂ : X) :
x₁ = x₂ x₁ = x₂
theorem OnePoint.forall {X : Type u_1} {p : OnePoint XProp} :
(∀ (x : OnePoint X), p x) p infty ∀ (x : X), p x
theorem OnePoint.exists {X : Type u_1} {p : OnePoint XProp} :
(∃ (x : OnePoint X), p x) p infty ∃ (x : X), p x
theorem OnePoint.coe_eq_coe {X : Type u_1} {x y : X} :
x = y x = y
@[simp]
theorem OnePoint.coe_ne_infty {X : Type u_1} (x : X) :
x infty
@[simp]
theorem OnePoint.infty_ne_coe {X : Type u_1} (x : X) :
infty x
def OnePoint.rec {X : Type u_1} {C : OnePoint XSort u_3} (infty : C infty) (coe : (x : X) → C x) (z : OnePoint X) :
C z

Recursor for OnePoint using the preferred forms and ↑x.

Equations
@[inline]
def OnePoint.elim {X : Type u_1} {Y : Type u_2} :
OnePoint XY(XY)Y

An elimination principle for OnePoint.

Equations
@[simp]
theorem OnePoint.elim_infty {X : Type u_1} {Y : Type u_2} (y : Y) (f : XY) :
infty.elim y f = y
@[simp]
theorem OnePoint.elim_some {X : Type u_1} {Y : Type u_2} (y : Y) (f : XY) (x : X) :
(↑x).elim y f = f x
theorem OnePoint.ne_infty_iff_exists {X : Type u_1} {x : OnePoint X} :
x infty ∃ (y : X), y = x
instance OnePoint.canLift {X : Type u_1} :
CanLift (OnePoint X) X some fun (x : OnePoint X) => x infty
@[deprecated OnePoint.notMem_range_coe_iff (since := "2025-05-23")]

Alias of OnePoint.notMem_range_coe_iff.

@[deprecated OnePoint.infty_notMem_range_coe (since := "2025-05-23")]

Alias of OnePoint.infty_notMem_range_coe.

theorem OnePoint.infty_notMem_image_coe {X : Type u_1} {s : Set X} :
inftysome '' s
@[deprecated OnePoint.infty_notMem_image_coe (since := "2025-05-23")]
theorem OnePoint.infty_not_mem_image_coe {X : Type u_1} {s : Set X} :
inftysome '' s

Alias of OnePoint.infty_notMem_image_coe.

def OnePoint.map {X : Type u_1} {Y : Type u_2} (f : XY) :

Extend a map f : X → Y to a map OnePoint X → OnePoint Y by sending infinity to infinity.

Equations
@[simp]
theorem OnePoint.map_infty {X : Type u_1} {Y : Type u_2} (f : XY) :
@[simp]
theorem OnePoint.map_some {X : Type u_1} {Y : Type u_2} (f : XY) (x : X) :
OnePoint.map f x = (f x)
@[simp]
theorem OnePoint.map_id {X : Type u_1} :
theorem OnePoint.map_comp {X : Type u_1} {Y : Type u_2} {Z : Type u_3} (f : YZ) (g : XY) :

Topological space structure on OnePoint X #

We define a topological space structure on OnePoint X so that s is open if and only if

Then we reformulate this definition in a few different ways, and prove that (↑) : X → OnePoint X is an open embedding. If X is not a compact space, then we also prove that (↑) has dense range, so it is a dense embedding.

Equations
  • One or more equations did not get rendered due to their size.
@[deprecated OnePoint.isOpen_iff_of_notMem (since := "2025-05-23")]
theorem OnePoint.isOpen_iff_of_not_mem {X : Type u_1} [TopologicalSpace X] {s : Set (OnePoint X)} (h : inftys) :

Alias of OnePoint.isOpen_iff_of_notMem.

@[deprecated OnePoint.isClosed_iff_of_notMem (since := "2025-05-23")]

Alias of OnePoint.isClosed_iff_of_notMem.

@[simp]

An open set in OnePoint X constructed from a closed compact set in X

Equations
theorem OnePoint.infty_mem_opensOfCompl {X : Type u_1} [TopologicalSpace X] {s : Set X} (h₁ : IsClosed s) (h₂ : IsCompact s) :
infty opensOfCompl s h₁ h₂
theorem OnePoint.nhds_coe_eq {X : Type u_1} [TopologicalSpace X] (x : X) :
theorem OnePoint.nhdsWithin_coe_image {X : Type u_1} [TopologicalSpace X] (s : Set X) (x : X) :
instance OnePoint.nhdsNE_coe_neBot {X : Type u_1} [TopologicalSpace X] (x : X) [h : (nhdsWithin x {x}).NeBot] :

If x is not an isolated point of X, then x : OnePoint X is not an isolated point of OnePoint X.

@[deprecated OnePoint.nhdsNE_coe_neBot (since := "2025-03-02")]

Alias of OnePoint.nhdsNE_coe_neBot.


If x is not an isolated point of X, then x : OnePoint X is not an isolated point of OnePoint X.

@[deprecated OnePoint.nhdsNE_infty_eq (since := "2025-03-02")]

Alias of OnePoint.nhdsNE_infty_eq.

If X is a non-compact space, then is not an isolated point of OnePoint X.

@[deprecated OnePoint.nhdsNE_infty_neBot (since := "2025-03-02")]

Alias of OnePoint.nhdsNE_infty_neBot.


If X is a non-compact space, then is not an isolated point of OnePoint X.

@[instance 900]
instance OnePoint.nhdsNE_neBot {X : Type u_1} [TopologicalSpace X] [∀ (x : X), (nhdsWithin x {x}).NeBot] [NoncompactSpace X] (x : OnePoint X) :
@[deprecated OnePoint.nhdsNE_neBot (since := "2025-03-02")]

Alias of OnePoint.nhdsNE_neBot.

theorem OnePoint.le_nhds_infty {X : Type u_1} [TopologicalSpace X] {f : Filter (OnePoint X)} :
f nhds infty ∀ (s : Set X), IsClosed sIsCompact ssome '' s {infty} f
theorem OnePoint.ultrafilter_le_nhds_infty {X : Type u_1} [TopologicalSpace X] {f : Ultrafilter (OnePoint X)} :
f nhds infty ∀ (s : Set X), IsClosed sIsCompact ssome '' sf
theorem OnePoint.tendsto_nhds_infty {X : Type u_1} [TopologicalSpace X] {α : Type u_3} {f : OnePoint Xα} {l : Filter α} :
Filter.Tendsto f (nhds infty) l sl, f infty s ∃ (t : Set X), IsClosed t IsCompact t Set.MapsTo (f some) t s
theorem OnePoint.continuousAt_infty {X : Type u_1} [TopologicalSpace X] {Y : Type u_3} [TopologicalSpace Y] {f : OnePoint XY} :
ContinuousAt f infty snhds (f infty), ∃ (t : Set X), IsClosed t IsCompact t Set.MapsTo (f some) t s
theorem OnePoint.continuousAt_coe {X : Type u_1} [TopologicalSpace X] {Y : Type u_3} [TopologicalSpace Y] {f : OnePoint XY} {x : X} :
theorem OnePoint.continuous_iff {X : Type u_1} [TopologicalSpace X] {Y : Type u_3} [TopologicalSpace Y] (f : OnePoint XY) :
Continuous f Filter.Tendsto (fun (x : X) => f x) (Filter.coclosedCompact X) (nhds (f infty)) Continuous fun (x : X) => f x
def OnePoint.continuousMapMk {X : Type u_1} [TopologicalSpace X] {Y : Type u_3} [TopologicalSpace Y] (f : C(X, Y)) (y : Y) (h : Filter.Tendsto (⇑f) (Filter.coclosedCompact X) (nhds y)) :

A constructor for continuous maps out of a one point compactification, given a continuous map from the underlying space and a limit value at infinity.

Equations

A constructor for continuous maps out of a one point compactification of a discrete space, given a map from the underlying space and a limit value at infinity.

Equations
noncomputable def OnePoint.continuousMapDiscreteEquiv (X : Type u_1) [TopologicalSpace X] (Y : Type u_3) [DiscreteTopology X] [TopologicalSpace Y] [T2Space Y] [Infinite X] :
C(OnePoint X, Y) { f : XY // ∃ (L : Y), Filter.Tendsto (fun (x : X) => f x) Filter.cofinite (nhds L) }

Continuous maps out of the one point compactification of an infinite discrete space to a Hausdorff space correspond bijectively to "convergent" maps out of the discrete space.

Equations
  • One or more equations did not get rendered due to their size.

A constructor for continuous maps out of the one point compactification of , given a sequence and a limit value at infinity.

Equations
noncomputable def OnePoint.continuousMapNatEquiv (Y : Type u_3) [TopologicalSpace Y] [T2Space Y] :
C(OnePoint , Y) { f : Y // ∃ (L : Y), Filter.Tendsto (fun (x : ) => f x) Filter.atTop (nhds L) }

Continuous maps out of the one point compactification of to a Hausdorff space Y correspond bijectively to convergent sequences in Y.

Equations
  • One or more equations did not get rendered due to their size.

If X is not a compact space, then the natural embedding X → OnePoint X has dense range.

@[simp]
theorem OnePoint.specializes_coe {X : Type u_1} [TopologicalSpace X] {x y : X} :
x y x y
@[simp]
theorem OnePoint.inseparable_coe {X : Type u_1} [TopologicalSpace X] {x y : X} :
theorem OnePoint.inseparable_iff {X : Type u_1} [TopologicalSpace X] {x y : OnePoint X} :
Inseparable x y x = infty y = infty ∃ (x' : X), x = x' ∃ (y' : X), y = y' Inseparable x' y'

Compactness and separation properties #

In this section we prove that OnePoint X is a compact space; it is a T₀ (resp., T₁) space if the original space satisfies the same separation axiom. If the original space is a locally compact Hausdorff space, then OnePoint X is a normal (hence, T₃ and Hausdorff) space.

Finally, if the original space X is not compact and is a preconnected space, then OnePoint X is a connected space.

For any topological space X, its one point compactification is a compact space.

The one point compactification of a T0Space space is a T0Space.

The one point compactification of a T1Space space is a T1Space.

The one point compactification of a weakly locally compact R₁ space is a normal topological space.

If X is an infinite type with discrete topology (e.g., ), then the identity map from CofiniteTopology (OnePoint X) to OnePoint X is not continuous.

noncomputable def OnePoint.equivOfIsEmbeddingOfRangeEq {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] [T2Space Y] [CompactSpace Y] (y : Y) (f : XY) (hf : Topology.IsEmbedding f) (hy : Set.range f = {y}) :

If f embeds X into a compact Hausdorff space Y, and has exactly one point outside its range, then (Y, f) is the one-point compactification of X.

Equations
@[simp]
theorem OnePoint.equivOfIsEmbeddingOfRangeEq_apply_coe {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] [T2Space Y] [CompactSpace Y] (y : Y) (f : XY) (hf : Topology.IsEmbedding f) (hy : Set.range f = {y}) (x : X) :
(equivOfIsEmbeddingOfRangeEq y f hf hy) x = f x
@[simp]

Extend a homeomorphism of topological spaces to the homeomorphism of their one point compactifications.

Equations
@[simp]
theorem Homeomorph.onePointCongr_apply {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] (h : X ≃ₜ Y) (a✝ : OnePoint X) :
h.onePointCongr a✝ = OnePoint.map (⇑h) a✝
@[simp]
theorem Homeomorph.onePointCongr_symm_apply {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] (h : X ≃ₜ Y) (a✝ : OnePoint Y) :
h.onePointCongr.symm a✝ = OnePoint.map (⇑h.symm) a✝

A concrete counterexample shows that Continuous.homeoOfEquivCompactToT2 cannot be generalized from T2Space to T1Space.

Let α = OnePoint be the one-point compactification of , and let β be the same space OnePoint with the cofinite topology. Then α is compact, β is T1, and the identity map id : α → β is a continuous equivalence that is not a homeomorphism.