Documentation

Mathlib.Topology.Basic

Openness and closedness of a set #

This file provides lemmas relating to the predicates IsOpen and IsClosed of a set endowed with a topology.

Implementation notes #

Topology in mathlib heavily uses filters (even more than in Bourbaki). See explanations in https://leanprover-community.github.io/theories/topology.html.

References #

Tags #

topological space

def TopologicalSpace.ofClosed {X : Type u} (T : Set (Set X)) (empty_mem : โˆ… โˆˆ T) (sInter_mem : โˆ€ A โІ T, โ‹‚โ‚€ A โˆˆ T) (union_mem : โˆ€ A โˆˆ T, โˆ€ B โˆˆ T, A โˆช B โˆˆ T) :

A constructor for topologies by specifying the closed sets, and showing that they satisfy the appropriate conditions.

Equations
    Instances For
      theorem isOpen_mk {X : Type u} {s : Set X} {p : Set X โ†’ Prop} {hโ‚ : p Set.univ} {hโ‚‚ : โˆ€ (s t : Set X), p s โ†’ p t โ†’ p (s โˆฉ t)} {hโ‚ƒ : โˆ€ (s : Set (Set X)), (โˆ€ t โˆˆ s, p t) โ†’ p (โ‹ƒโ‚€ s)} :
      theorem TopologicalSpace.ext {X : Type u} {f g : TopologicalSpace X} :
      IsOpen = IsOpen โ†’ f = g
      theorem isOpen_iUnion {X : Type u} {ฮน : Sort v} [TopologicalSpace X] {f : ฮน โ†’ Set X} (h : โˆ€ (i : ฮน), IsOpen (f i)) :
      IsOpen (โ‹ƒ (i : ฮน), f i)
      theorem isOpen_biUnion {X : Type u} {ฮฑ : Type u_1} [TopologicalSpace X] {s : Set ฮฑ} {f : ฮฑ โ†’ Set X} (h : โˆ€ i โˆˆ s, IsOpen (f i)) :
      IsOpen (โ‹ƒ i โˆˆ s, f i)
      theorem IsOpen.union {X : Type u} {sโ‚ sโ‚‚ : Set X} [TopologicalSpace X] (hโ‚ : IsOpen sโ‚) (hโ‚‚ : IsOpen sโ‚‚) :
      IsOpen (sโ‚ โˆช sโ‚‚)
      theorem isOpen_iff_of_cover {X : Type u} {ฮฑ : Type u_1} {s : Set X} [TopologicalSpace X] {f : ฮฑ โ†’ Set X} (ho : โˆ€ (i : ฮฑ), IsOpen (f i)) (hU : โ‹ƒ (i : ฮฑ), f i = Set.univ) :
      IsOpen s โ†” โˆ€ (i : ฮฑ), IsOpen (f i โˆฉ s)
      theorem Set.Finite.isOpen_sInter {X : Type u} [TopologicalSpace X] {s : Set (Set X)} (hs : s.Finite) (h : โˆ€ t โˆˆ s, IsOpen t) :
      theorem Set.Finite.isOpen_biInter {X : Type u} {ฮฑ : Type u_1} [TopologicalSpace X] {s : Set ฮฑ} {f : ฮฑ โ†’ Set X} (hs : s.Finite) (h : โˆ€ i โˆˆ s, IsOpen (f i)) :
      IsOpen (โ‹‚ i โˆˆ s, f i)
      theorem isOpen_iInter_of_finite {X : Type u} {ฮน : Sort v} [TopologicalSpace X] [Finite ฮน] {s : ฮน โ†’ Set X} (h : โˆ€ (i : ฮน), IsOpen (s i)) :
      IsOpen (โ‹‚ (i : ฮน), s i)
      theorem isOpen_biInter_finset {X : Type u} {ฮฑ : Type u_1} [TopologicalSpace X] {s : Finset ฮฑ} {f : ฮฑ โ†’ Set X} (h : โˆ€ i โˆˆ s, IsOpen (f i)) :
      IsOpen (โ‹‚ i โˆˆ s, f i)
      @[simp]
      theorem isOpen_const {X : Type u} [TopologicalSpace X] {p : Prop} :
      IsOpen {_x : X | p}
      theorem IsOpen.and {X : Type u} {pโ‚ pโ‚‚ : X โ†’ Prop} [TopologicalSpace X] :
      IsOpen {x : X | pโ‚ x} โ†’ IsOpen {x : X | pโ‚‚ x} โ†’ IsOpen {x : X | pโ‚ x โˆง pโ‚‚ x}
      theorem TopologicalSpace.ext_iff_isClosed {X : Type u_2} {tโ‚ tโ‚‚ : TopologicalSpace X} :
      tโ‚ = tโ‚‚ โ†” โˆ€ (s : Set X), IsClosed s โ†” IsClosed s
      theorem TopologicalSpace.ext_isClosed {X : Type u_2} {tโ‚ tโ‚‚ : TopologicalSpace X} :
      (โˆ€ (s : Set X), IsClosed s โ†” IsClosed s) โ†’ tโ‚ = tโ‚‚

      Alias of the reverse direction of TopologicalSpace.ext_iff_isClosed.

      theorem IsClosed.union {X : Type u} {sโ‚ sโ‚‚ : Set X} [TopologicalSpace X] :
      IsClosed sโ‚ โ†’ IsClosed sโ‚‚ โ†’ IsClosed (sโ‚ โˆช sโ‚‚)
      theorem isClosed_sInter {X : Type u} [TopologicalSpace X] {s : Set (Set X)} :
      (โˆ€ t โˆˆ s, IsClosed t) โ†’ IsClosed (โ‹‚โ‚€ s)
      theorem isClosed_iInter {X : Type u} {ฮน : Sort v} [TopologicalSpace X] {f : ฮน โ†’ Set X} (h : โˆ€ (i : ฮน), IsClosed (f i)) :
      IsClosed (โ‹‚ (i : ฮน), f i)
      theorem isClosed_biInter {X : Type u} {ฮฑ : Type u_1} [TopologicalSpace X] {s : Set ฮฑ} {f : ฮฑ โ†’ Set X} (h : โˆ€ i โˆˆ s, IsClosed (f i)) :
      IsClosed (โ‹‚ i โˆˆ s, f i)
      theorem IsOpen.isClosed_compl {X : Type u} [TopologicalSpace X] {s : Set X} :

      Alias of the reverse direction of isClosed_compl_iff.

      theorem IsOpen.sdiff {X : Type u} {s t : Set X} [TopologicalSpace X] (hโ‚ : IsOpen s) (hโ‚‚ : IsClosed t) :
      IsOpen (s \ t)
      theorem IsClosed.inter {X : Type u} {sโ‚ sโ‚‚ : Set X} [TopologicalSpace X] (hโ‚ : IsClosed sโ‚) (hโ‚‚ : IsClosed sโ‚‚) :
      IsClosed (sโ‚ โˆฉ sโ‚‚)
      theorem IsClosed.sdiff {X : Type u} {s t : Set X} [TopologicalSpace X] (hโ‚ : IsClosed s) (hโ‚‚ : IsOpen t) :
      IsClosed (s \ t)
      theorem Set.Finite.isClosed_biUnion {X : Type u} {ฮฑ : Type u_1} [TopologicalSpace X] {s : Set ฮฑ} {f : ฮฑ โ†’ Set X} (hs : s.Finite) (h : โˆ€ i โˆˆ s, IsClosed (f i)) :
      IsClosed (โ‹ƒ i โˆˆ s, f i)
      theorem isClosed_biUnion_finset {X : Type u} {ฮฑ : Type u_1} [TopologicalSpace X] {s : Finset ฮฑ} {f : ฮฑ โ†’ Set X} (h : โˆ€ i โˆˆ s, IsClosed (f i)) :
      IsClosed (โ‹ƒ i โˆˆ s, f i)
      theorem isClosed_iUnion_of_finite {X : Type u} {ฮน : Sort v} [TopologicalSpace X] [Finite ฮน] {s : ฮน โ†’ Set X} (h : โˆ€ (i : ฮน), IsClosed (s i)) :
      IsClosed (โ‹ƒ (i : ฮน), s i)
      theorem isClosed_imp {X : Type u} [TopologicalSpace X] {p q : X โ†’ Prop} (hp : IsOpen {x : X | p x}) (hq : IsClosed {x : X | q x}) :
      IsClosed {x : X | p x โ†’ q x}
      theorem IsClosed.not {X : Type u} {p : X โ†’ Prop} [TopologicalSpace X] :
      IsClosed {a : X | p a} โ†’ IsOpen {a : X | ยฌp a}
      theorem IsClosed.and {X : Type u} {pโ‚ pโ‚‚ : X โ†’ Prop} [TopologicalSpace X] :
      IsClosed {x : X | pโ‚ x} โ†’ IsClosed {x : X | pโ‚‚ x} โ†’ IsClosed {x : X | pโ‚ x โˆง pโ‚‚ x}

      Limits of filters in topological spaces #

      In this section we define functions that return a limit of a filter (or of a function along a filter), if it exists, and a random point otherwise. These functions are rarely used in Mathlib, most of the theorems are written using Filter.Tendsto. One of the reasons is that Filter.limUnder f g = x is not equivalent to Filter.Tendsto g f (๐“ x) unless the codomain is a Hausdorff space and g has a limit along f.

      theorem le_nhds_lim {X : Type u} [TopologicalSpace X] {f : Filter X} (h : โˆƒ (x : X), f โ‰ค nhds x) :

      If a filter f is majorated by some ๐“ x, then it is majorated by ๐“ (Filter.lim f). We formulate this lemma with a [Nonempty X] argument of lim derived from h to make it useful for types without a [Nonempty X] instance. Because of the built-in proof irrelevance, Lean will unify this instance with any other instance.

      theorem tendsto_nhds_limUnder {X : Type u} {ฮฑ : Type u_1} [TopologicalSpace X] {f : Filter ฮฑ} {g : ฮฑ โ†’ X} (h : โˆƒ (x : X), Filter.Tendsto g f (nhds x)) :

      If g tends to some ๐“ x along f, then it tends to ๐“ (Filter.limUnder f g). We formulate this lemma with a [Nonempty X] argument of lim derived from h to make it useful for types without a [Nonempty X] instance. Because of the built-in proof irrelevance, Lean will unify this instance with any other instance.

      theorem limUnder_of_not_tendsto {X : Type u} {ฮฑ : Type u_1} [TopologicalSpace X] [hX : Nonempty X] {f : Filter ฮฑ} {g : ฮฑ โ†’ X} (h : ยฌโˆƒ (x : X), Filter.Tendsto g f (nhds x)) :