Documentation

Mathlib.Topology.Separation

Separation properties of topological spaces. #

This file defines the predicate SeparatedNhds, and common separation axioms (under the Kolmogorov classification).

Main definitions #

Main results #

T₀ spaces #

T₁ spaces #

T₂ spaces #

If the space is also compact:

T₃ spaces #

References #

https://en.wikipedia.org/wiki/Separation_axiom

def SeparatedNhds {α : Type u} [TopologicalSpace α] :
Set αSet αProp

SeparatedNhds is a predicate on pairs of subSets of a topological space. It holds if the two subSets are contained in disjoint open sets.

Equations
Instances For
    theorem SeparatedNhds.disjoint_nhdsSet {α : Type u} [TopologicalSpace α] {s : Set α} {t : Set α} :

    Alias of the forward direction of separatedNhds_iff_disjoint.

    theorem SeparatedNhds.symm {α : Type u} [TopologicalSpace α] {s : Set α} {t : Set α} :
    theorem SeparatedNhds.comm {α : Type u} [TopologicalSpace α] (s : Set α) (t : Set α) :
    theorem SeparatedNhds.preimage {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] {f : αβ} {s : Set β} {t : Set β} (h : SeparatedNhds s t) (hf : Continuous f) :
    theorem SeparatedNhds.disjoint {α : Type u} [TopologicalSpace α] {s : Set α} {t : Set α} (h : SeparatedNhds s t) :
    theorem SeparatedNhds.disjoint_closure_left {α : Type u} [TopologicalSpace α] {s : Set α} {t : Set α} (h : SeparatedNhds s t) :
    theorem SeparatedNhds.disjoint_closure_right {α : Type u} [TopologicalSpace α] {s : Set α} {t : Set α} (h : SeparatedNhds s t) :
    theorem SeparatedNhds.mono {α : Type u} [TopologicalSpace α] {s₁ : Set α} {s₂ : Set α} {t₁ : Set α} {t₂ : Set α} (h : SeparatedNhds s₂ t₂) (hs : s₁ s₂) (ht : t₁ t₂) :
    SeparatedNhds s₁ t₁
    theorem SeparatedNhds.union_left {α : Type u} [TopologicalSpace α] {s : Set α} {t : Set α} {u : Set α} :
    theorem SeparatedNhds.union_right {α : Type u} [TopologicalSpace α] {s : Set α} {t : Set α} {u : Set α} (ht : SeparatedNhds s t) (hu : SeparatedNhds s u) :
    class T0Space (α : Type u) [TopologicalSpace α] :
    • t0 : ∀ ⦃x y : α⦄, Inseparable x yx = y

      Two inseparable points in a T₀ space are equal.

    A T₀ space, also known as a Kolmogorov space, is a topological space such that for every pair x ≠ y, there is an open set containing one but not the other. We formulate the definition in terms of the Inseparable relation.

    Instances
      theorem t0Space_iff_inseparable (α : Type u) [TopologicalSpace α] :
      T0Space α ∀ (x y : α), Inseparable x yx = y
      theorem t0Space_iff_not_inseparable (α : Type u) [TopologicalSpace α] :
      T0Space α ∀ (x y : α), x y¬Inseparable x y
      theorem Inseparable.eq {α : Type u} [TopologicalSpace α] [T0Space α] {x : α} {y : α} (h : Inseparable x y) :
      x = y
      theorem Inducing.injective {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T0Space α] {f : αβ} (hf : Inducing f) :

      A topology Inducing map from a T₀ space is injective.

      theorem Inducing.embedding {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T0Space α] {f : αβ} (hf : Inducing f) :

      A topology Inducing map from a T₀ space is a topological embedding.

      theorem embedding_iff_inducing {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T0Space α] {f : αβ} :
      theorem inseparable_iff_eq {α : Type u} [TopologicalSpace α] [T0Space α] {x : α} {y : α} :
      Inseparable x y x = y
      @[simp]
      theorem nhds_eq_nhds_iff {α : Type u} [TopologicalSpace α] [T0Space α] {a : α} {b : α} :
      nhds a = nhds b a = b
      @[simp]
      theorem inseparable_eq_eq {α : Type u} [TopologicalSpace α] [T0Space α] :
      Inseparable = Eq
      theorem TopologicalSpace.IsTopologicalBasis.inseparable_iff {α : Type u} [TopologicalSpace α] {b : Set (Set α)} (hb : TopologicalSpace.IsTopologicalBasis b) {x : α} {y : α} :
      Inseparable x y ∀ (s : Set α), s b → (x s y s)
      theorem TopologicalSpace.IsTopologicalBasis.eq_iff {α : Type u} [TopologicalSpace α] [T0Space α] {b : Set (Set α)} (hb : TopologicalSpace.IsTopologicalBasis b) {x : α} {y : α} :
      x = y ∀ (s : Set α), s b → (x s y s)
      theorem t0Space_iff_exists_isOpen_xor'_mem (α : Type u) [TopologicalSpace α] :
      T0Space α ∀ (x y : α), x yU, IsOpen U Xor' (x U) (y U)
      theorem exists_isOpen_xor'_mem {α : Type u} [TopologicalSpace α] [T0Space α] {x : α} {y : α} (h : x y) :
      U, IsOpen U Xor' (x U) (y U)

      Specialization forms a partial order on a t0 topological space.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem minimal_nonempty_closed_subsingleton {α : Type u} [TopologicalSpace α] [T0Space α] {s : Set α} (hs : IsClosed s) (hmin : ∀ (t : Set α), t sSet.Nonempty tIsClosed tt = s) :
        theorem minimal_nonempty_closed_eq_singleton {α : Type u} [TopologicalSpace α] [T0Space α] {s : Set α} (hs : IsClosed s) (hne : Set.Nonempty s) (hmin : ∀ (t : Set α), t sSet.Nonempty tIsClosed tt = s) :
        x, s = {x}
        theorem IsClosed.exists_closed_singleton {α : Type u_1} [TopologicalSpace α] [T0Space α] [CompactSpace α] {S : Set α} (hS : IsClosed S) (hne : Set.Nonempty S) :
        x, x S IsClosed {x}

        Given a closed set S in a compact T₀ space, there is some x ∈ S such that {x} is closed.

        theorem minimal_nonempty_open_subsingleton {α : Type u} [TopologicalSpace α] [T0Space α] {s : Set α} (hs : IsOpen s) (hmin : ∀ (t : Set α), t sSet.Nonempty tIsOpen tt = s) :
        theorem minimal_nonempty_open_eq_singleton {α : Type u} [TopologicalSpace α] [T0Space α] {s : Set α} (hs : IsOpen s) (hne : Set.Nonempty s) (hmin : ∀ (t : Set α), t sSet.Nonempty tIsOpen tt = s) :
        x, s = {x}
        theorem exists_open_singleton_of_open_finite {α : Type u} [TopologicalSpace α] [T0Space α] {s : Set α} (hfin : Set.Finite s) (hne : Set.Nonempty s) (ho : IsOpen s) :
        x, x s IsOpen {x}

        Given an open finite set S in a T₀ space, there is some x ∈ S such that {x} is open.

        theorem t0Space_of_injective_of_continuous {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] {f : αβ} (hf : Function.Injective f) (hf' : Continuous f) [T0Space β] :
        theorem Embedding.t0Space {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T0Space β] {f : αβ} (hf : Embedding f) :
        theorem t0Space_iff_or_not_mem_closure (α : Type u) [TopologicalSpace α] :
        T0Space α ∀ (a b : α), a b¬a closure {b} ¬b closure {a}
        instance Pi.instT0Space {ι : Type u_1} {π : ιType u_2} [(i : ι) → TopologicalSpace (π i)] [∀ (i : ι), T0Space (π i)] :
        T0Space ((i : ι) → π i)
        Equations
        theorem T0Space.of_cover {α : Type u} [TopologicalSpace α] (h : ∀ (x y : α), Inseparable x ys, x s y s T0Space s) :
        theorem T0Space.of_open_cover {α : Type u} [TopologicalSpace α] (h : ∀ (x : α), s, x s IsOpen s T0Space s) :
        class T1Space (α : Type u) [TopologicalSpace α] :
        • t1 : ∀ (x : α), IsClosed {x}

          A singleton in a T₁ space is a closed set.

        A T₁ space, also known as a Fréchet space, is a topological space where every singleton set is closed. Equivalently, for every pair x ≠ y, there is an open set containing x and not y.

        Instances
          theorem isClosed_singleton {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} :
          theorem isOpen_compl_singleton {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} :
          theorem isOpen_ne {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} :
          IsOpen {y | y x}
          theorem Continuous.isOpen_support {α : Type u} {β : Type v} [TopologicalSpace α] [T1Space α] [Zero α] [TopologicalSpace β] {f : βα} (hf : Continuous f) :
          theorem Continuous.isOpen_mulSupport {α : Type u} {β : Type v} [TopologicalSpace α] [T1Space α] [One α] [TopologicalSpace β] {f : βα} (hf : Continuous f) :
          theorem Ne.nhdsWithin_compl_singleton {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} {y : α} (h : x y) :
          theorem Ne.nhdsWithin_diff_singleton {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} {y : α} (h : x y) (s : Set α) :
          nhdsWithin x (s \ {y}) = nhdsWithin x s
          theorem nhdsWithin_compl_singleton_le {α : Type u} [TopologicalSpace α] [T1Space α] (x : α) (y : α) :
          theorem isOpen_setOf_eventually_nhdsWithin {α : Type u} [TopologicalSpace α] [T1Space α] {p : αProp} :
          IsOpen {x | ∀ᶠ (y : α) in nhdsWithin x {x}, p y}
          theorem Set.Finite.isClosed {α : Type u} [TopologicalSpace α] [T1Space α] {s : Set α} (hs : Set.Finite s) :
          theorem TopologicalSpace.IsTopologicalBasis.exists_mem_of_ne {α : Type u} [TopologicalSpace α] [T1Space α] {b : Set (Set α)} (hb : TopologicalSpace.IsTopologicalBasis b) {x : α} {y : α} (h : x y) :
          a, a b x a ¬y a

          In a T1Space, relatively compact sets form a bornology. Its cobounded filter is Filter.coclosedCompact. See also Bornology.inCompact the bornology of sets contained in a compact set.

          Equations
          Instances For
            theorem Finset.isClosed {α : Type u} [TopologicalSpace α] [T1Space α] (s : Finset α) :
            theorem t1Space_TFAE (α : Type u) [TopologicalSpace α] :
            List.TFAE [T1Space α, ∀ (x : α), IsClosed {x}, ∀ (x : α), IsOpen {x}, Continuous CofiniteTopology.of, ∀ ⦃x y : α⦄, x y{y} nhds x, ∀ ⦃x y : α⦄, x ys, s nhds x ¬y s, ∀ ⦃x y : α⦄, x yU, IsOpen U x U ¬y U, ∀ ⦃x y : α⦄, x yDisjoint (nhds x) (pure y), ∀ ⦃x y : α⦄, x yDisjoint (pure x) (nhds y), ∀ ⦃x y : α⦄, x yx = y]
            theorem t1Space_iff_continuous_cofinite_of {α : Type u_1} [TopologicalSpace α] :
            T1Space α Continuous CofiniteTopology.of
            theorem CofiniteTopology.continuous_of {α : Type u} [TopologicalSpace α] [T1Space α] :
            Continuous CofiniteTopology.of
            theorem t1Space_iff_exists_open {α : Type u} [TopologicalSpace α] :
            T1Space α ∀ (x y : α), x yU, IsOpen U x U ¬y U
            theorem t1Space_iff_disjoint_pure_nhds {α : Type u} [TopologicalSpace α] :
            T1Space α ∀ ⦃x y : α⦄, x yDisjoint (pure x) (nhds y)
            theorem t1Space_iff_disjoint_nhds_pure {α : Type u} [TopologicalSpace α] :
            T1Space α ∀ ⦃x y : α⦄, x yDisjoint (nhds x) (pure y)
            theorem t1Space_iff_specializes_imp_eq {α : Type u} [TopologicalSpace α] :
            T1Space α ∀ ⦃x y : α⦄, x yx = y
            theorem disjoint_pure_nhds {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} {y : α} (h : x y) :
            theorem disjoint_nhds_pure {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} {y : α} (h : x y) :
            theorem Specializes.eq {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} {y : α} (h : x y) :
            x = y
            theorem specializes_iff_eq {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} {y : α} :
            x y x = y
            @[simp]
            theorem specializes_eq_eq {α : Type u} [TopologicalSpace α] [T1Space α] :
            (fun x x_1 => x x_1) = Eq
            @[simp]
            theorem pure_le_nhds_iff {α : Type u} [TopologicalSpace α] [T1Space α] {a : α} {b : α} :
            pure a nhds b a = b
            @[simp]
            theorem nhds_le_nhds_iff {α : Type u} [TopologicalSpace α] [T1Space α] {a : α} {b : α} :
            nhds a nhds b a = b
            theorem t1Space_antitone {α : Type u_1} :
            theorem continuousWithinAt_update_of_ne {α : Type u} {β : Type v} [TopologicalSpace α] [T1Space α] [DecidableEq α] [TopologicalSpace β] {f : αβ} {s : Set α} {x : α} {y : α} {z : β} (hne : y x) :
            theorem continuousAt_update_of_ne {α : Type u} {β : Type v} [TopologicalSpace α] [T1Space α] [DecidableEq α] [TopologicalSpace β] {f : αβ} {x : α} {y : α} {z : β} (hne : y x) :
            theorem continuousOn_update_iff {α : Type u} {β : Type v} [TopologicalSpace α] [T1Space α] [DecidableEq α] [TopologicalSpace β] {f : αβ} {s : Set α} {x : α} {y : β} :
            ContinuousOn (Function.update f x y) s ContinuousOn f (s \ {x}) (x sFilter.Tendsto f (nhdsWithin x (s \ {x})) (nhds y))
            theorem t1Space_of_injective_of_continuous {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] {f : αβ} (hf : Function.Injective f) (hf' : Continuous f) [T1Space β] :
            theorem Embedding.t1Space {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T1Space β] {f : αβ} (hf : Embedding f) :
            instance instT1SpaceForAllTopologicalSpace {ι : Type u_1} {π : ιType u_2} [(i : ι) → TopologicalSpace (π i)] [∀ (i : ι), T1Space (π i)] :
            T1Space ((i : ι) → π i)
            Equations
            @[simp]
            theorem compl_singleton_mem_nhds_iff {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} {y : α} :
            {x} nhds y y x
            theorem compl_singleton_mem_nhds {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} {y : α} (h : y x) :
            {x} nhds y
            @[simp]
            theorem closure_singleton {α : Type u} [TopologicalSpace α] [T1Space α] {a : α} :
            closure {a} = {a}
            theorem isClosedMap_const {α : Type u_1} {β : Type u_2} [TopologicalSpace α] [TopologicalSpace β] [T1Space β] {y : β} :
            theorem nhdsWithin_insert_of_ne {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} {y : α} {s : Set α} (hxy : x y) :
            theorem insert_mem_nhdsWithin_of_subset_insert {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} {y : α} {s : Set α} {t : Set α} (hu : t insert y s) :

            If t is a subset of s, except for one point, then insert x s is a neighborhood of x within t.

            @[simp]
            theorem ker_nhds {α : Type u} [TopologicalSpace α] [T1Space α] (x : α) :
            Filter.ker (nhds x) = {x}
            theorem biInter_basis_nhds {α : Type u} [TopologicalSpace α] [T1Space α] {ι : Sort u_1} {p : ιProp} {s : ιSet α} {x : α} (h : Filter.HasBasis (nhds x) p s) :
            ⋂ (i : ι) (x : p i), s i = {x}
            @[simp]
            theorem compl_singleton_mem_nhdsSet_iff {α : Type u} [TopologicalSpace α] [T1Space α] {x : α} {s : Set α} :
            @[simp]
            theorem nhdsSet_le_iff {α : Type u} [TopologicalSpace α] [T1Space α] {s : Set α} {t : Set α} :
            @[simp]
            theorem nhdsSet_inj_iff {α : Type u} [TopologicalSpace α] [T1Space α] {s : Set α} {t : Set α} :
            @[simp]
            theorem nhds_le_nhdsSet_iff {α : Type u} [TopologicalSpace α] [T1Space α] {s : Set α} {x : α} :
            theorem Dense.diff_singleton {α : Type u} [TopologicalSpace α] [T1Space α] {s : Set α} (hs : Dense s) (x : α) [Filter.NeBot (nhdsWithin x {x})] :
            Dense (s \ {x})

            Removing a non-isolated point from a dense set, one still obtains a dense set.

            theorem Dense.diff_finset {α : Type u} [TopologicalSpace α] [T1Space α] [∀ (x : α), Filter.NeBot (nhdsWithin x {x})] {s : Set α} (hs : Dense s) (t : Finset α) :
            Dense (s \ t)

            Removing a finset from a dense set in a space without isolated points, one still obtains a dense set.

            theorem Dense.diff_finite {α : Type u} [TopologicalSpace α] [T1Space α] [∀ (x : α), Filter.NeBot (nhdsWithin x {x})] {s : Set α} (hs : Dense s) {t : Set α} (ht : Set.Finite t) :
            Dense (s \ t)

            Removing a finite set from a dense set in a space without isolated points, one still obtains a dense set.

            theorem eq_of_tendsto_nhds {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T1Space β] {f : αβ} {a : α} {b : β} (h : Filter.Tendsto f (nhds a) (nhds b)) :
            f a = b

            If a function to a T1Space tends to some limit b at some point a, then necessarily b = f a.

            theorem Filter.Tendsto.eventually_ne {β : Type v} [TopologicalSpace β] [T1Space β] {α : Type u_1} {g : αβ} {l : Filter α} {b₁ : β} {b₂ : β} (hg : Filter.Tendsto g l (nhds b₁)) (hb : b₁ b₂) :
            ∀ᶠ (z : α) in l, g z b₂
            theorem ContinuousAt.eventually_ne {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T1Space β] {g : αβ} {a : α} {b : β} (hg1 : ContinuousAt g a) (hg2 : g a b) :
            ∀ᶠ (z : α) in nhds a, g z b
            theorem eventually_ne_nhds {α : Type u} [TopologicalSpace α] [T1Space α] {a : α} {b : α} (h : a b) :
            ∀ᶠ (x : α) in nhds a, x b
            theorem eventually_ne_nhdsWithin {α : Type u} [TopologicalSpace α] [T1Space α] {a : α} {b : α} {s : Set α} (h : a b) :
            ∀ᶠ (x : α) in nhdsWithin a s, x b
            theorem continuousAt_of_tendsto_nhds {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T1Space β] {f : αβ} {a : α} {b : β} (h : Filter.Tendsto f (nhds a) (nhds b)) :

            To prove a function to a T1Space is continuous at some point a, it suffices to prove that f admits some limit at a.

            @[simp]
            theorem tendsto_const_nhds_iff {α : Type u} {β : Type v} [TopologicalSpace α] [T1Space α] {l : Filter β} [Filter.NeBot l] {c : α} {d : α} :
            Filter.Tendsto (fun x => c) l (nhds d) c = d
            theorem isOpen_singleton_of_finite_mem_nhds {α : Type u_1} [TopologicalSpace α] [T1Space α] (x : α) {s : Set α} (hs : s nhds x) (hsf : Set.Finite s) :
            IsOpen {x}

            A point with a finite neighborhood has to be isolated.

            theorem infinite_of_mem_nhds {α : Type u_1} [TopologicalSpace α] [T1Space α] (x : α) [hx : Filter.NeBot (nhdsWithin x {x})] {s : Set α} (hs : s nhds x) :

            If the punctured neighborhoods of a point form a nontrivial filter, then any neighborhood is infinite.

            theorem singleton_mem_nhdsWithin_of_mem_discrete {α : Type u} [TopologicalSpace α] {s : Set α} [DiscreteTopology s] {x : α} (hx : x s) :
            {x} nhdsWithin x s
            theorem nhdsWithin_of_mem_discrete {α : Type u} [TopologicalSpace α] {s : Set α} [DiscreteTopology s] {x : α} (hx : x s) :

            The neighbourhoods filter of x within s, under the discrete topology, is equal to the pure x filter (which is the principal filter at the singleton {x}.)

            theorem Filter.HasBasis.exists_inter_eq_singleton_of_mem_discrete {α : Type u} [TopologicalSpace α] {ι : Type u_1} {p : ιProp} {t : ιSet α} {s : Set α} [DiscreteTopology s] {x : α} (hb : Filter.HasBasis (nhds x) p t) (hx : x s) :
            i, p i t i s = {x}
            theorem nhds_inter_eq_singleton_of_mem_discrete {α : Type u} [TopologicalSpace α] {s : Set α} [DiscreteTopology s] {x : α} (hx : x s) :
            U, U nhds x U s = {x}

            A point x in a discrete subset s of a topological space admits a neighbourhood that only meets s at x.

            theorem disjoint_nhdsWithin_of_mem_discrete {α : Type u} [TopologicalSpace α] {s : Set α} [DiscreteTopology s] {x : α} (hx : x s) :
            U, U nhdsWithin x {x} Disjoint U s

            For point x in a discrete subset s of a topological space, there is a set U such that

            1. U is a punctured neighborhood of x (ie. U ∪ {x} is a neighbourhood of x),
            2. U is disjoint from s.
            @[deprecated embedding_inclusion]
            theorem TopologicalSpace.subset_trans {X : Type u_1} [TopologicalSpace X] {s : Set X} {t : Set X} (ts : t s) :
            instTopologicalSpaceSubtype = TopologicalSpace.induced (Set.inclusion ts) instTopologicalSpaceSubtype

            Let X be a topological space and let s, t ⊆ X be two subsets. If there is an inclusion t ⊆ s, then the topological space structure on t induced by X is the same as the one obtained by the induced topological space structure on s. Use embedding_inclusion instead.

            theorem t2Space_iff (α : Type u) [TopologicalSpace α] :
            T2Space α ∀ (x y : α), x yu v, IsOpen u IsOpen v x u y v Disjoint u v
            class T2Space (α : Type u) [TopologicalSpace α] :

            A T₂ space, also known as a Hausdorff space, is one in which for every x ≠ y there exists disjoint open sets around x and y. This is the most widely used of the separation axioms.

            Instances
              theorem t2_separation {α : Type u} [TopologicalSpace α] [T2Space α] {x : α} {y : α} (h : x y) :
              u v, IsOpen u IsOpen v x u y v Disjoint u v

              Two different points can be separated by open sets.

              theorem t2Space_iff_disjoint_nhds {α : Type u} [TopologicalSpace α] :
              T2Space α ∀ (x y : α), x yDisjoint (nhds x) (nhds y)
              @[simp]
              theorem disjoint_nhds_nhds {α : Type u} [TopologicalSpace α] [T2Space α] {x : α} {y : α} :
              Disjoint (nhds x) (nhds y) x y
              theorem pairwise_disjoint_nhds {α : Type u} [TopologicalSpace α] [T2Space α] :
              Pairwise (Disjoint on nhds)
              theorem Set.Finite.t2_separation {α : Type u} [TopologicalSpace α] [T2Space α] {s : Set α} (hs : Set.Finite s) :
              U, (∀ (x : α), x U x IsOpen (U x)) Set.PairwiseDisjoint s U

              Points of a finite set can be separated by open sets from each other.

              theorem t2_iff_nhds {α : Type u} [TopologicalSpace α] :
              T2Space α ∀ {x y : α}, Filter.NeBot (nhds x nhds y)x = y

              A space is T₂ iff the neighbourhoods of distinct points generate the bottom filter.

              theorem eq_of_nhds_neBot {α : Type u} [TopologicalSpace α] [T2Space α] {x : α} {y : α} (h : Filter.NeBot (nhds x nhds y)) :
              x = y
              theorem t2Space_iff_nhds {α : Type u} [TopologicalSpace α] :
              T2Space α ∀ {x y : α}, x yU, U nhds x V, V nhds y Disjoint U V
              theorem t2_separation_nhds {α : Type u} [TopologicalSpace α] [T2Space α] {x : α} {y : α} (h : x y) :
              u v, u nhds x v nhds y Disjoint u v
              theorem t2_separation_compact_nhds {α : Type u} [TopologicalSpace α] [LocallyCompactSpace α] [T2Space α] {x : α} {y : α} (h : x y) :
              u v, u nhds x v nhds y IsCompact u IsCompact v Disjoint u v
              theorem t2_iff_ultrafilter {α : Type u} [TopologicalSpace α] :
              T2Space α ∀ {x y : α} (f : Ultrafilter α), f nhds xf nhds yx = y
              theorem tendsto_nhds_unique {α : Type u} {β : Type v} [TopologicalSpace α] [T2Space α] {f : βα} {l : Filter β} {a : α} {b : α} [Filter.NeBot l] (ha : Filter.Tendsto f l (nhds a)) (hb : Filter.Tendsto f l (nhds b)) :
              a = b
              theorem tendsto_nhds_unique' {α : Type u} {β : Type v} [TopologicalSpace α] [T2Space α] {f : βα} {l : Filter β} {a : α} {b : α} :
              Filter.NeBot lFilter.Tendsto f l (nhds a)Filter.Tendsto f l (nhds b)a = b
              theorem tendsto_nhds_unique_of_eventuallyEq {α : Type u} {β : Type v} [TopologicalSpace α] [T2Space α] {f : βα} {g : βα} {l : Filter β} {a : α} {b : α} [Filter.NeBot l] (ha : Filter.Tendsto f l (nhds a)) (hb : Filter.Tendsto g l (nhds b)) (hfg : f =ᶠ[l] g) :
              a = b
              theorem tendsto_nhds_unique_of_frequently_eq {α : Type u} {β : Type v} [TopologicalSpace α] [T2Space α] {f : βα} {g : βα} {l : Filter β} {a : α} {b : α} (ha : Filter.Tendsto f l (nhds a)) (hb : Filter.Tendsto g l (nhds b)) (hfg : ∃ᶠ (x : β) in l, f x = g x) :
              a = b
              class T25Space (α : Type u) [TopologicalSpace α] :

              A T₂.₅ space, also known as a Urysohn space, is a topological space where for every pair x ≠ y, there are two open sets, with the intersection of closures empty, one containing x and the other y .

              Instances
                @[simp]
                theorem disjoint_lift'_closure_nhds {α : Type u} [TopologicalSpace α] [T25Space α] {x : α} {y : α} :
                Disjoint (Filter.lift' (nhds x) closure) (Filter.lift' (nhds y) closure) x y
                theorem exists_nhds_disjoint_closure {α : Type u} [TopologicalSpace α] [T25Space α] {x : α} {y : α} (h : x y) :
                s, s nhds x t, t nhds y Disjoint (closure s) (closure t)
                theorem exists_open_nhds_disjoint_closure {α : Type u} [TopologicalSpace α] [T25Space α] {x : α} {y : α} (h : x y) :
                u, x u IsOpen u v, y v IsOpen v Disjoint (closure u) (closure v)

                Properties of lim and limUnder #

                In this section we use explicit Nonempty α instances for lim and limUnder. This way the lemmas are useful without a Nonempty α instance.

                theorem lim_eq {α : Type u} [TopologicalSpace α] [T2Space α] {f : Filter α} {a : α} [Filter.NeBot f] (h : f nhds a) :
                lim f = a
                theorem lim_eq_iff {α : Type u} [TopologicalSpace α] [T2Space α] {f : Filter α} [Filter.NeBot f] (h : a, f nhds a) {a : α} :
                lim f = a f nhds a
                theorem isOpen_iff_ultrafilter' {α : Type u} [TopologicalSpace α] [T2Space α] [CompactSpace α] (U : Set α) :
                IsOpen U ∀ (F : Ultrafilter α), Ultrafilter.lim F UU F
                theorem Filter.Tendsto.limUnder_eq {α : Type u} {β : Type v} [TopologicalSpace α] [T2Space α] {a : α} {f : Filter β} [Filter.NeBot f] {g : βα} (h : Filter.Tendsto g f (nhds a)) :
                limUnder f g = a
                theorem Filter.limUnder_eq_iff {α : Type u} {β : Type v} [TopologicalSpace α] [T2Space α] {f : Filter β} [Filter.NeBot f] {g : βα} (h : a, Filter.Tendsto g f (nhds a)) {a : α} :
                theorem Continuous.limUnder_eq {α : Type u} {β : Type v} [TopologicalSpace α] [T2Space α] [TopologicalSpace β] {f : βα} (h : Continuous f) (a : β) :
                limUnder (nhds a) f = f a
                @[simp]
                theorem lim_nhds {α : Type u} [TopologicalSpace α] [T2Space α] (a : α) :
                lim (nhds a) = a
                @[simp]
                theorem limUnder_nhds_id {α : Type u} [TopologicalSpace α] [T2Space α] (a : α) :
                limUnder (nhds a) id = a
                @[simp]
                theorem lim_nhdsWithin {α : Type u} [TopologicalSpace α] [T2Space α] {a : α} {s : Set α} (h : a closure s) :
                lim (nhdsWithin a s) = a
                @[simp]
                theorem limUnder_nhdsWithin_id {α : Type u} [TopologicalSpace α] [T2Space α] {a : α} {s : Set α} (h : a closure s) :
                limUnder (nhdsWithin a s) id = a

                T2Space constructions #

                We use two lemmas to prove that various standard constructions generate Hausdorff spaces from Hausdorff spaces:

                theorem separated_by_continuous {α : Type u_1} {β : Type u_2} [TopologicalSpace α] [TopologicalSpace β] [T2Space β] {f : αβ} (hf : Continuous f) {x : α} {y : α} (h : f x f y) :
                u v, IsOpen u IsOpen v x u y v Disjoint u v
                theorem separated_by_openEmbedding {α : Type u_1} {β : Type u_2} [TopologicalSpace α] [TopologicalSpace β] [T2Space α] {f : αβ} (hf : OpenEmbedding f) {x : α} {y : α} (h : x y) :
                u v, IsOpen u IsOpen v f x u f y v Disjoint u v
                instance Prod.t2Space {α : Type u_1} {β : Type u_2} [TopologicalSpace α] [T2Space α] [TopologicalSpace β] [T2Space β] :
                T2Space (α × β)
                Equations
                theorem T2Space.of_injective_continuous {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T2Space β] {f : αβ} (hinj : Function.Injective f) (hc : Continuous f) :

                If the codomain of an injective continuous function is a Hausdorff space, then so is its domain.

                theorem Embedding.t2Space {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T2Space β] {f : αβ} (hf : Embedding f) :

                If the codomain of a topological embedding is a Hausdorff space, then so is its domain. See also T2Space.of_continuous_injective.

                instance Pi.t2Space {α : Type u_1} {β : αType v} [(a : α) → TopologicalSpace (β a)] [∀ (a : α), T2Space (β a)] :
                T2Space ((a : α) → β a)
                Equations
                instance Sigma.t2Space {ι : Type u_2} {α : ιType u_1} [(i : ι) → TopologicalSpace (α i)] [∀ (a : ι), T2Space (α a)] :
                T2Space ((i : ι) × α i)
                Equations
                theorem isClosed_eq {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T2Space α] {f : βα} {g : βα} (hf : Continuous f) (hg : Continuous g) :
                IsClosed {x | f x = g x}
                theorem isOpen_ne_fun {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T2Space α] {f : βα} {g : βα} (hf : Continuous f) (hg : Continuous g) :
                IsOpen {x | f x g x}
                theorem Set.EqOn.closure {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T2Space α] {s : Set β} {f : βα} {g : βα} (h : Set.EqOn f g s) (hf : Continuous f) (hg : Continuous g) :

                If two continuous maps are equal on s, then they are equal on the closure of s. See also Set.EqOn.of_subset_closure for a more general version.

                theorem Continuous.ext_on {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T2Space α] {s : Set β} (hs : Dense s) {f : βα} {g : βα} (hf : Continuous f) (hg : Continuous g) (h : Set.EqOn f g s) :
                f = g

                If two continuous functions are equal on a dense set, then they are equal.

                theorem eqOn_closure₂' {α : Type u} {β : Type v} [TopologicalSpace α] {γ : Type u_1} [TopologicalSpace β] [TopologicalSpace γ] [T2Space α] {s : Set β} {t : Set γ} {f : βγα} {g : βγα} (h : ∀ (x : β), x s∀ (y : γ), y tf x y = g x y) (hf₁ : ∀ (x : β), Continuous (f x)) (hf₂ : ∀ (y : γ), Continuous fun x => f x y) (hg₁ : ∀ (x : β), Continuous (g x)) (hg₂ : ∀ (y : γ), Continuous fun x => g x y) (x : β) :
                x closure s∀ (y : γ), y closure tf x y = g x y
                theorem eqOn_closure₂ {α : Type u} {β : Type v} [TopologicalSpace α] {γ : Type u_1} [TopologicalSpace β] [TopologicalSpace γ] [T2Space α] {s : Set β} {t : Set γ} {f : βγα} {g : βγα} (h : ∀ (x : β), x s∀ (y : γ), y tf x y = g x y) (hf : Continuous (Function.uncurry f)) (hg : Continuous (Function.uncurry g)) (x : β) :
                x closure s∀ (y : γ), y closure tf x y = g x y
                theorem Set.EqOn.of_subset_closure {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T2Space α] {s : Set β} {t : Set β} {f : βα} {g : βα} (h : Set.EqOn f g s) (hf : ContinuousOn f t) (hg : ContinuousOn g t) (hst : s t) (hts : t closure s) :
                Set.EqOn f g t

                If f x = g x for all x ∈ s and f, g are continuous on t, s ⊆ t ⊆ closure s, then f x = g x for all x ∈ t. See also Set.EqOn.closure.

                theorem Function.LeftInverse.closed_range {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T2Space α] {f : αβ} {g : βα} (h : Function.LeftInverse f g) (hf : Continuous f) (hg : Continuous g) :
                theorem Function.LeftInverse.closedEmbedding {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T2Space α] {f : αβ} {g : βα} (h : Function.LeftInverse f g) (hf : Continuous f) (hg : Continuous g) :
                theorem isCompact_isCompact_separated {α : Type u} [TopologicalSpace α] [T2Space α] {s : Set α} {t : Set α} (hs : IsCompact s) (ht : IsCompact t) (hst : Disjoint s t) :
                theorem finset_disjoint_finset_opens_of_t2 {α : Type u} [TopologicalSpace α] [T2Space α] (s : Finset α) (t : Finset α) (h : Disjoint s t) :
                SeparatedNhds s t
                theorem point_disjoint_finset_opens_of_t2 {α : Type u} [TopologicalSpace α] [T2Space α] {x : α} {s : Finset α} (h : ¬x s) :
                SeparatedNhds {x} s
                theorem IsCompact.isClosed {α : Type u} [TopologicalSpace α] [T2Space α] {s : Set α} (hs : IsCompact s) :

                In a T2Space, every compact set is closed.

                theorem IsCompact.preimage_continuous {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [CompactSpace α] [T2Space β] {f : αβ} {s : Set β} (hs : IsCompact s) (hf : Continuous f) :
                theorem exists_subset_nhds_of_isCompact {α : Type u} [TopologicalSpace α] [T2Space α] {ι : Type u_2} [Nonempty ι] {V : ιSet α} (hV : Directed (fun x x_1 => x x_1) V) (hV_cpct : ∀ (i : ι), IsCompact (V i)) {U : Set α} (hU : ∀ (x : α), x ⋂ (i : ι), V iU nhds x) :
                i, V i U

                If V : ι → Set α is a decreasing family of compact sets then any neighborhood of ⋂ i, V i contains some V i. This is a version of exists_subset_nhds_of_isCompact' where we don't need to assume each V i closed because it follows from compactness since α is assumed to be Hausdorff.

                theorem CompactExhaustion.isClosed {α : Type u} [TopologicalSpace α] [T2Space α] (K : CompactExhaustion α) (n : ) :
                IsClosed (K n)
                theorem IsCompact.inter {α : Type u} [TopologicalSpace α] [T2Space α] {s : Set α} {t : Set α} (hs : IsCompact s) (ht : IsCompact t) :
                theorem isCompact_closure_of_subset_compact {α : Type u} [TopologicalSpace α] [T2Space α] {s : Set α} {t : Set α} (ht : IsCompact t) (h : s t) :
                @[simp]
                theorem exists_compact_superset_iff {α : Type u} [TopologicalSpace α] [T2Space α] {s : Set α} :
                (K, IsCompact K s K) IsCompact (closure s)
                theorem image_closure_of_isCompact {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T2Space β] {s : Set α} (hs : IsCompact (closure s)) {f : αβ} (hf : ContinuousOn f (closure s)) :
                f '' closure s = closure (f '' s)
                theorem IsCompact.binary_compact_cover {α : Type u} [TopologicalSpace α] [T2Space α] {K : Set α} {U : Set α} {V : Set α} (hK : IsCompact K) (hU : IsOpen U) (hV : IsOpen V) (h2K : K U V) :
                K₁ K₂, IsCompact K₁ IsCompact K₂ K₁ U K₂ V K = K₁ K₂

                If a compact set is covered by two open sets, then we can cover it by two compact subsets.

                theorem Continuous.isClosedMap {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [CompactSpace α] [T2Space β] {f : αβ} (h : Continuous f) :

                A continuous map from a compact space to a Hausdorff space is a closed map.

                theorem Continuous.closedEmbedding {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [CompactSpace α] [T2Space β] {f : αβ} (h : Continuous f) (hf : Function.Injective f) :

                A continuous injective map from a compact space to a Hausdorff space is a closed embedding.

                theorem QuotientMap.of_surjective_continuous {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [CompactSpace α] [T2Space β] {f : αβ} (hsurj : Function.Surjective f) (hcont : Continuous f) :

                A continuous surjective map from a compact space to a Hausdorff space is a quotient map.

                theorem IsCompact.finite_compact_cover {α : Type u} [TopologicalSpace α] [T2Space α] {s : Set α} (hs : IsCompact s) {ι : Type u_2} (t : Finset ι) (U : ιSet α) (hU : ∀ (i : ι), i tIsOpen (U i)) (hsC : s ⋃ (i : ι) (_ : i t), U i) :
                K, (∀ (i : ι), IsCompact (K i)) (∀ (i : ι), K i U i) s = ⋃ (i : ι) (_ : i t), K i

                For every finite open cover Uᵢ of a compact set, there exists a compact cover Kᵢ ⊆ Uᵢ.

                @[deprecated WeaklyLocallyCompactSpace.locallyCompactSpace]

                In a weakly locally compact T₂ space, every compact set has an open neighborhood with compact closure.

                In a weakly locally compact T₂ space, every point has an open neighborhood with compact closure.

                theorem exists_open_between_and_isCompact_closure {α : Type u} [TopologicalSpace α] [LocallyCompactSpace α] [T2Space α] {K : Set α} {U : Set α} (hK : IsCompact K) (hU : IsOpen U) (hKU : K U) :

                In a locally compact T₂ space, given a compact set K inside an open set U, we can find an open set V between these sets with compact closure: K ⊆ V and the closure of V is inside U.

                theorem isIrreducible_iff_singleton {α : Type u} [TopologicalSpace α] [T2Space α] {S : Set α} :
                IsIrreducible S x, S = {x}

                There does not exist a nontrivial preirreducible T₂ space.

                theorem regularSpace_iff (X : Type u) [TopologicalSpace X] :
                RegularSpace X ∀ {s : Set X} {a : X}, IsClosed s¬a sDisjoint (nhdsSet s) (nhds a)
                • regular : ∀ {s : Set X} {a : X}, IsClosed s¬a sDisjoint (nhdsSet s) (nhds a)

                  If a is a point that does not belong to a closed set s, then a and s admit disjoint neighborhoods.

                A topological space is called a regular space if for any closed set s and a ∉ s, there exist disjoint open sets U ⊇ s and V ∋ a. We formulate this condition in terms of Disjointness of filters 𝓝ˢ s and 𝓝 a.

                Instances
                  theorem regularSpace_TFAE (X : Type u) [TopologicalSpace X] :
                  List.TFAE [RegularSpace X, ∀ (s : Set X) (a : X), ¬a closure sDisjoint (nhdsSet s) (nhds a), ∀ (a : X) (s : Set X), Disjoint (nhdsSet s) (nhds a) ¬a closure s, ∀ (a : X) (s : Set X), s nhds at, t nhds a IsClosed t t s, ∀ (a : X), Filter.lift' (nhds a) closure nhds a, ∀ (a : X), Filter.lift' (nhds a) closure = nhds a]
                  theorem RegularSpace.ofLift'_closure {α : Type u} [TopologicalSpace α] (h : ∀ (a : α), Filter.lift' (nhds a) closure = nhds a) :
                  theorem RegularSpace.ofBasis {α : Type u} [TopologicalSpace α] {ι : αSort u_1} {p : (a : α) → ι aProp} {s : (a : α) → ι aSet α} (h₁ : ∀ (a : α), Filter.HasBasis (nhds a) (p a) (s a)) (h₂ : ∀ (a : α) (i : ι a), p a iIsClosed (s a i)) :
                  theorem RegularSpace.ofExistsMemNhdsIsClosedSubset {α : Type u} [TopologicalSpace α] (h : ∀ (a : α) (s : Set α), s nhds at, t nhds a IsClosed t t s) :
                  theorem disjoint_nhdsSet_nhds {α : Type u} [TopologicalSpace α] [RegularSpace α] {a : α} {s : Set α} :
                  theorem disjoint_nhds_nhdsSet {α : Type u} [TopologicalSpace α] [RegularSpace α] {a : α} {s : Set α} :
                  theorem exists_mem_nhds_isClosed_subset {α : Type u} [TopologicalSpace α] [RegularSpace α] {a : α} {s : Set α} (h : s nhds a) :
                  t, t nhds a IsClosed t t s
                  theorem closed_nhds_basis {α : Type u} [TopologicalSpace α] [RegularSpace α] (a : α) :
                  Filter.HasBasis (nhds a) (fun s => s nhds a IsClosed s) id
                  theorem lift'_nhds_closure {α : Type u} [TopologicalSpace α] [RegularSpace α] (a : α) :
                  Filter.lift' (nhds a) closure = nhds a
                  theorem Filter.HasBasis.nhds_closure {α : Type u} [TopologicalSpace α] [RegularSpace α] {ι : Sort u_1} {a : α} {p : ιProp} {s : ιSet α} (h : Filter.HasBasis (nhds a) p s) :
                  Filter.HasBasis (nhds a) p fun i => closure (s i)
                  theorem hasBasis_nhds_closure {α : Type u} [TopologicalSpace α] [RegularSpace α] (a : α) :
                  Filter.HasBasis (nhds a) (fun s => s nhds a) closure
                  theorem hasBasis_opens_closure {α : Type u} [TopologicalSpace α] [RegularSpace α] (a : α) :
                  Filter.HasBasis (nhds a) (fun s => a s IsOpen s) closure
                  theorem specializes_comm {α : Type u} [TopologicalSpace α] [RegularSpace α] {a : α} {b : α} :
                  a b b a
                  theorem Specializes.symm {α : Type u} [TopologicalSpace α] [RegularSpace α] {a : α} {b : α} :
                  a bb a

                  Alias of the forward direction of specializes_comm.

                  theorem specializes_iff_inseparable {α : Type u} [TopologicalSpace α] [RegularSpace α] {a : α} {b : α} :
                  theorem isClosed_setOf_specializes {α : Type u} [TopologicalSpace α] [RegularSpace α] :
                  IsClosed {p | p.fst p.snd}
                  theorem Inducing.regularSpace {α : Type u} {β : Type v} [TopologicalSpace α] [RegularSpace α] [TopologicalSpace β] {f : βα} (hf : Inducing f) :
                  theorem regularSpace_induced {α : Type u} {β : Type v} [TopologicalSpace α] [RegularSpace α] (f : βα) :
                  theorem regularSpace_sInf {X : Type u_1} {T : Set (TopologicalSpace X)} (h : ∀ (t : TopologicalSpace X), t TRegularSpace X) :
                  theorem regularSpace_iInf {ι : Sort u_1} {X : Type u_2} {t : ιTopologicalSpace X} (h : ∀ (i : ι), RegularSpace X) :
                  theorem RegularSpace.inf {X : Type u_1} {t₁ : TopologicalSpace X} {t₂ : TopologicalSpace X} (h₁ : RegularSpace X) (h₂ : RegularSpace X) :
                  instance instRegularSpaceForAllTopologicalSpace {ι : Type u_1} {π : ιType u_2} [(i : ι) → TopologicalSpace (π i)] [∀ (i : ι), RegularSpace (π i)] :
                  RegularSpace ((i : ι) → π i)
                  Equations
                  class T3Space (α : Type u) [TopologicalSpace α] extends T0Space , RegularSpace :

                    A T₃ space is a T₀ space which is a regular space. Any T₃ space is a T₁ space, a T₂ space, and a T₂.₅ space.

                    Instances
                      instance instT3Space {α : Type u} [TopologicalSpace α] [T0Space α] [RegularSpace α] :
                      Equations
                      theorem Embedding.t3Space {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T3Space β] {f : αβ} (hf : Embedding f) :
                      instance instT3SpaceForAllTopologicalSpace {ι : Type u_1} {π : ιType u_2} [(i : ι) → TopologicalSpace (π i)] [∀ (i : ι), T3Space (π i)] :
                      T3Space ((i : ι) → π i)
                      Equations
                      theorem disjoint_nested_nhds {α : Type u} [TopologicalSpace α] [T3Space α] {x : α} {y : α} (h : x y) :
                      U₁, U₁ nhds x V₁, V₁ nhds x U₂, U₂ nhds y V₂, V₂ nhds y IsClosed V₁ IsClosed V₂ IsOpen U₁ IsOpen U₂ V₁ U₁ V₂ U₂ Disjoint U₁ U₂

                      Given two points x ≠ y, we can find neighbourhoods x ∈ V₁ ⊆ U₁ and y ∈ V₂ ⊆ U₂, with the Vₖ closed and the Uₖ open, such that the Uₖ are disjoint.

                      A topological space is said to be a normal space if any two disjoint closed sets have disjoint open neighborhoods.

                      Instances
                        theorem normal_separation {α : Type u} [TopologicalSpace α] [NormalSpace α] {s : Set α} {t : Set α} (H1 : IsClosed s) (H2 : IsClosed t) (H3 : Disjoint s t) :
                        theorem disjoint_nhdsSet_nhdsSet {α : Type u} [TopologicalSpace α] [NormalSpace α] {s : Set α} {t : Set α} (hs : IsClosed s) (ht : IsClosed t) (hd : Disjoint s t) :
                        theorem normal_exists_closure_subset {α : Type u} [TopologicalSpace α] [NormalSpace α] {s : Set α} {t : Set α} (hs : IsClosed s) (ht : IsOpen t) (hst : s t) :
                        u, IsOpen u s u closure u t
                        theorem ClosedEmbedding.normalSpace {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [NormalSpace β] {f : αβ} (hf : ClosedEmbedding f) :

                        If the codomain of a closed embedding is a normal space, then so is the domain.

                        class T4Space (α : Type u) [TopologicalSpace α] extends T1Space , NormalSpace :

                          A T₄ space is a normal T₁ space.

                          Instances
                            instance instT4Space {α : Type u} [TopologicalSpace α] [T1Space α] [NormalSpace α] :
                            Equations
                            theorem ClosedEmbedding.t4Space {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T4Space β] {f : αβ} (hf : ClosedEmbedding f) :

                            If the codomain of a closed embedding is a T₄ space, then so is the domain.

                            class T5Space (α : Type u) [TopologicalSpace α] extends T1Space :

                            A topological space α is a completely normal Hausdorff space if each subspace s : Set α is a normal Hausdorff space. Equivalently, α is a T₁ space and for any two sets s, t such that closure s is disjoint with t and s is disjoint with closure t, there exist disjoint neighbourhoods of s and t.

                            Instances
                              theorem Embedding.t5Space {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [T5Space β] {e : αβ} (he : Embedding e) :
                              instance T5Space.toT4Space {α : Type u} [TopologicalSpace α] [T5Space α] :

                              A T₅ space is a T₄ space.

                              Equations

                              The SeparationQuotient of a completely normal R₀ space is a T₅ space. We don't have typeclasses for completely normal spaces (without T₁ assumption) and R₀ spaces, so we use T5Space for assumption and for conclusion.

                              One can prove this using a homeomorphism between α and SeparationQuotient α. We give an alternative proof of the completely_normal axiom that works without assuming that α is a T₁ space.

                              Equations
                              theorem connectedComponent_eq_iInter_clopen {α : Type u} [TopologicalSpace α] [T2Space α] [CompactSpace α] (x : α) :
                              connectedComponent x = ⋂ (Z : { Z // IsClopen Z x Z }), Z

                              In a compact t2 space, the connected component of a point equals the intersection of all its clopen neighbourhoods.

                              A T1 space with a clopen basis is totally separated.

                              A compact Hausdorff space is totally disconnected if and only if it is totally separated, this is also true for locally compact spaces.

                              A totally disconnected compact Hausdorff space is totally separated.

                              Equations
                              theorem nhds_basis_clopen {α : Type u} [TopologicalSpace α] [T2Space α] [CompactSpace α] [TotallyDisconnectedSpace α] (x : α) :
                              Filter.HasBasis (nhds x) (fun s => x s IsClopen s) id
                              theorem compact_exists_clopen_in_open {α : Type u} [TopologicalSpace α] [T2Space α] [CompactSpace α] [TotallyDisconnectedSpace α] {x : α} {U : Set α} (is_open : IsOpen U) (memU : x U) :
                              V, IsClopen V x V V U

                              Every member of an open set in a compact Hausdorff totally disconnected space is contained in a clopen set contained in the open set.

                              A locally compact Hausdorff totally disconnected space has a basis with clopen elements.

                              A locally compact Hausdorff space is totally disconnected if and only if it is totally separated.