Documentation

Mathlib.Topology.Order

Ordering on topologies and (co)induced topologies #

Topologies on a fixed type α are ordered, by reverse inclusion. That is, for topologies t₁ and t₂ on α, we write t₁ ≤ t₂ if every set open in t₂ is also open in t₁. (One also calls t₁ finer than t₂, and t₂ coarser than t₁.)

Any function f : α → β induces

Continuity, the ordering on topologies and (co)induced topologies are related as follows:

Topologies on α form a complete lattice, with the discrete topology and the indiscrete topology.

For a function f : α → β, (TopologicalSpace.coinduced f, TopologicalSpace.induced f) is a Galois connection between topologies on α and topologies on β.

Implementation notes #

There is a Galois insertion between topologies on α (with the inclusion ordering) and all collections of sets in α. The complete lattice structure on topologies on α is defined as the reverse of the one obtained via this Galois insertion. More precisely, we use the corresponding Galois coinsertion between topologies on α (with the reversed inclusion ordering) and collections of sets in α (with the reversed inclusion ordering).

Tags #

finer, coarser, induced topology, coinduced topology

inductive TopologicalSpace.GenerateOpen {α : Type u} (g : Set (Set α)) :
Set αProp

The open sets of the least topology containing a collection of basic sets.

Instances For

    The smallest topological space containing the collection g of basic sets

    Equations
    Instances For
      theorem TopologicalSpace.isOpen_generateFrom_of_mem {α : Type u} {g : Set (Set α)} {s : Set α} (hs : s g) :
      theorem TopologicalSpace.nhds_generateFrom {α : Type u} {g : Set (Set α)} {a : α} :
      nhds a = s{s : Set α | a s s g}, Filter.principal s
      theorem TopologicalSpace.tendsto_nhds_generateFrom_iff {α : Type u} {β : Type u_1} {m : αβ} {f : Filter α} {g : Set (Set β)} {b : β} :
      Filter.Tendsto m f (nhds b) sg, b sm ⁻¹' s f
      def TopologicalSpace.mkOfNhds {α : Type u} (n : αFilter α) :

      Construct a topology on α given the filter of neighborhoods of each point of α.

      Equations
      Instances For
        theorem TopologicalSpace.nhds_mkOfNhds_of_hasBasis {α : Type u} {n : αFilter α} {ι : αSort u_1} {p : (a : α) → ι aProp} {s : (a : α) → ι aSet α} (hb : ∀ (a : α), (n a).HasBasis (p a) (s a)) (hpure : ∀ (a : α) (i : ι a), p a ia s a i) (hopen : ∀ (a : α) (i : ι a), p a i∀ᶠ (x : α) in n a, s a i n x) (a : α) :
        nhds a = n a
        theorem TopologicalSpace.nhds_mkOfNhds {α : Type u} (n : αFilter α) (a : α) (h₀ : pure n) (h₁ : ∀ (a : α), sn a, ∀ᶠ (y : α) in n a, s n y) :
        nhds a = n a
        theorem TopologicalSpace.nhds_mkOfNhds_single {α : Type u} [DecidableEq α] {a₀ : α} {l : Filter α} (h : pure a₀ l) (b : α) :
        nhds b = Function.update pure a₀ l b
        theorem TopologicalSpace.nhds_mkOfNhds_filterBasis {α : Type u} (B : αFilterBasis α) (a : α) (h₀ : ∀ (x : α), nB x, x n) (h₁ : ∀ (x : α), nB x, n₁B x, x'n₁, n₂B x', n₂ n) :
        nhds a = (B a).filter

        The ordering on topologies on the type α. t ≤ s if every set open in s is also open in t (t is finer than s).

        Equations
        theorem TopologicalSpace.le_def {α : Type u_1} {t s : TopologicalSpace α} :
        t s IsOpen IsOpen
        def TopologicalSpace.mkOfClosure {α : Type u} (s : Set (Set α)) (hs : {u : Set α | TopologicalSpace.GenerateOpen s u} = s) :

        If s equals the collection of open sets in the topology it generates, then s defines a topology.

        Equations
        Instances For
          theorem TopologicalSpace.gc_generateFrom (α : Type u_1) :
          GaloisConnection (fun (t : TopologicalSpace α) => OrderDual.toDual {s : Set α | IsOpen s}) (TopologicalSpace.generateFrom OrderDual.ofDual)
          def TopologicalSpace.gciGenerateFrom (α : Type u_1) :
          GaloisCoinsertion (fun (t : TopologicalSpace α) => OrderDual.toDual {s : Set α | IsOpen s}) (TopologicalSpace.generateFrom OrderDual.ofDual)

          The Galois coinsertion between TopologicalSpace α and (Set (Set α))ᵒᵈ whose lower part sends a topology to its collection of open subsets, and whose upper part sends a collection of subsets of α to the topology they generate.

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

            Topologies on α form a complete lattice, with the discrete topology and the indiscrete topology. The infimum of a collection of topologies is the topology generated by all their open sets, while the supremum is the topology whose open sets are those sets open in every member of the collection.

            Equations
            theorem TopologicalSpace.leftInverse_generateFrom {α : Type u} :
            Function.LeftInverse TopologicalSpace.generateFrom fun (t : TopologicalSpace α) => {s : Set α | IsOpen s}
            theorem TopologicalSpace.generateFrom_surjective {α : Type u} :
            Function.Surjective TopologicalSpace.generateFrom
            theorem IsOpen.mono {α : Type u_1} {t₁ t₂ : TopologicalSpace α} {s : Set α} (hs : IsOpen s) (h : t₁ t₂) :
            theorem IsClosed.mono {α : Type u_1} {t₁ t₂ : TopologicalSpace α} {s : Set α} (hs : IsClosed s) (h : t₁ t₂) :
            theorem closure.mono {α : Type u_1} {t₁ t₂ : TopologicalSpace α} {s : Set α} (h : t₁ t₂) :
            theorem isOpen_implies_isOpen_iff {α : Type u_1} {t₁ t₂ : TopologicalSpace α} :
            (∀ (s : Set α), IsOpen sIsOpen s) t₂ t₁
            theorem TopologicalSpace.isOpen_top_iff {α : Type u_2} (U : Set α) :
            IsOpen U U = U = Set.univ

            The only open sets in the indiscrete topology are the empty set and the whole space.

            class DiscreteTopology (α : Type u_2) [t : TopologicalSpace α] :

            A topological space is discrete if every set is open, that is, its topology equals the discrete topology .

            Instances
              @[simp]
              theorem isOpen_discrete {α : Type u_1} [TopologicalSpace α] [DiscreteTopology α] (s : Set α) :
              @[simp]
              theorem isClosed_discrete {α : Type u_1} [TopologicalSpace α] [DiscreteTopology α] (s : Set α) :
              @[simp]
              theorem closure_discrete {α : Type u_1} [TopologicalSpace α] [DiscreteTopology α] (s : Set α) :
              @[simp]
              theorem dense_discrete {α : Type u_1} [TopologicalSpace α] [DiscreteTopology α] {s : Set α} :
              Dense s s = Set.univ
              @[simp]
              theorem denseRange_discrete {α : Type u_1} [TopologicalSpace α] [DiscreteTopology α] {ι : Type u_3} {f : ια} :
              theorem continuous_of_discreteTopology {α : Type u_1} [TopologicalSpace α] [DiscreteTopology α] {β : Type u_2} [TopologicalSpace β] {f : αβ} :
              theorem continuous_discrete_rng {β : Type u_2} {α : Type u_3} [TopologicalSpace α] [TopologicalSpace β] [DiscreteTopology β] {f : αβ} :
              Continuous f ∀ (b : β), IsOpen (f ⁻¹' {b})

              A function to a discrete topological space is continuous if and only if the preimage of every singleton is open.

              @[simp]
              theorem nhds_discrete (α : Type u_3) [TopologicalSpace α] [DiscreteTopology α] :
              nhds = pure
              theorem mem_nhds_discrete {α : Type u_1} [TopologicalSpace α] [DiscreteTopology α] {x : α} {s : Set α} :
              s nhds x x s
              theorem le_of_nhds_le_nhds {α : Type u_1} {t₁ t₂ : TopologicalSpace α} (h : ∀ (x : α), nhds x nhds x) :
              t₁ t₂
              @[deprecated TopologicalSpace.ext_nhds]
              theorem eq_of_nhds_eq_nhds {X : Type u_3} {t t' : TopologicalSpace X} :
              (∀ (x : X), nhds x = nhds x)t = t'

              Alias of the reverse direction of TopologicalSpace.ext_iff_nhds.


              Alias of the reverse direction of TopologicalSpace.ext_iff_nhds.

              theorem eq_bot_of_singletons_open {α : Type u_1} {t : TopologicalSpace α} (h : ∀ (x : α), IsOpen {x}) :
              t =
              theorem discreteTopology_iff_nhds {α : Type u_1} [TopologicalSpace α] :
              DiscreteTopology α ∀ (x : α), nhds x = pure x

              This lemma characterizes discrete topological spaces as those whose singletons are neighbourhoods.

              If the codomain of a continuous injective function has discrete topology, then so does the domain.

              See also Embedding.discreteTopology for an important special case.

              theorem isOpen_induced_iff {α : Type u_1} {β : Type u_2} [t : TopologicalSpace β] {s : Set α} {f : αβ} :
              IsOpen s ∃ (t_1 : Set β), IsOpen t_1 f ⁻¹' t_1 = s
              theorem isClosed_induced_iff {α : Type u_1} {β : Type u_2} [t : TopologicalSpace β] {s : Set α} {f : αβ} :
              IsClosed s ∃ (t_1 : Set β), IsClosed t_1 f ⁻¹' t_1 = s
              theorem isOpen_coinduced {α : Type u_1} {β : Type u_2} {t : TopologicalSpace α} {s : Set β} {f : αβ} :
              theorem isClosed_coinduced {α : Type u_1} {β : Type u_2} {t : TopologicalSpace α} {s : Set β} {f : αβ} :
              theorem preimage_nhds_coinduced {α : Type u_1} {β : Type u_2} [TopologicalSpace α] {π : αβ} {s : Set β} {a : α} (hs : s nhds (π a)) :
              π ⁻¹' s nhds a
              theorem Continuous.coinduced_le {α : Type u_1} {β : Type u_2} {t : TopologicalSpace α} {t' : TopologicalSpace β} {f : αβ} (h : Continuous f) :
              theorem coinduced_le_iff_le_induced {α : Type u_1} {β : Type u_2} {f : αβ} {tα : TopologicalSpace α} {tβ : TopologicalSpace β} :
              theorem Continuous.le_induced {α : Type u_1} {β : Type u_2} {t : TopologicalSpace α} {t' : TopologicalSpace β} {f : αβ} (h : Continuous f) :
              theorem induced_mono {α : Type u_1} {β : Type u_2} {t₁ t₂ : TopologicalSpace α} {g : βα} (h : t₁ t₂) :
              theorem coinduced_mono {α : Type u_1} {β : Type u_2} {t₁ t₂ : TopologicalSpace α} {f : αβ} (h : t₁ t₂) :
              @[simp]
              theorem induced_top {α : Type u_1} {β : Type u_2} {g : βα} :
              @[simp]
              theorem induced_inf {α : Type u_1} {β : Type u_2} {t₁ t₂ : TopologicalSpace α} {g : βα} :
              @[simp]
              theorem induced_iInf {α : Type u_1} {β : Type u_2} {g : βα} {ι : Sort w} {t : ιTopologicalSpace α} :
              TopologicalSpace.induced g (⨅ (i : ι), t i) = ⨅ (i : ι), TopologicalSpace.induced g (t i)
              @[simp]
              theorem induced_sInf {α : Type u_1} {β : Type u_2} {g : βα} {s : Set (TopologicalSpace α)} :
              @[simp]
              theorem coinduced_bot {α : Type u_1} {β : Type u_2} {f : αβ} :
              @[simp]
              theorem coinduced_sup {α : Type u_1} {β : Type u_2} {t₁ t₂ : TopologicalSpace α} {f : αβ} :
              @[simp]
              theorem coinduced_iSup {α : Type u_1} {β : Type u_2} {f : αβ} {ι : Sort w} {t : ιTopologicalSpace α} :
              TopologicalSpace.coinduced f (⨆ (i : ι), t i) = ⨆ (i : ι), TopologicalSpace.coinduced f (t i)
              @[simp]
              theorem coinduced_sSup {α : Type u_1} {β : Type u_2} {f : αβ} {s : Set (TopologicalSpace α)} :
              theorem induced_compose {α : Type u_1} {β : Type u_2} {γ : Type u_3} {tγ : TopologicalSpace γ} {f : αβ} {g : βγ} :
              theorem induced_const {α : Type u_1} {β : Type u_2} [t : TopologicalSpace α] {x : α} :
              TopologicalSpace.induced (fun (x_1 : β) => x) t =
              theorem coinduced_compose {α : Type u_1} {β : Type u_2} {γ : Type u_3} [tα : TopologicalSpace α] {f : αβ} {g : βγ} :
              theorem Equiv.induced_symm {α : Type u_4} {β : Type u_5} (e : α β) :
              theorem Equiv.coinduced_symm {α : Type u_4} {β : Type u_5} (e : α β) :
              Equations
              • inhabitedTopologicalSpace = { default := }
              @[instance 100]
              Equations
              • Subsingleton.uniqueTopologicalSpace = { default := , uniq := }
              @[instance 100]
              Equations
              • instTopologicalSpaceFin =
              theorem continuous_empty_function {α : Type u} {β : Type v} [TopologicalSpace α] [TopologicalSpace β] [IsEmpty β] (f : αβ) :
              theorem le_generateFrom {α : Type u} {t : TopologicalSpace α} {g : Set (Set α)} (h : sg, IsOpen s) :
              theorem le_induced_generateFrom {α : Type u_1} {β : Type u_2} [t : TopologicalSpace α] {b : Set (Set β)} {f : αβ} (h : ab, IsOpen (f ⁻¹' a)) :
              def nhdsAdjoint {α : Type u} (a : α) (f : Filter α) :

              This construction is left adjoint to the operation sending a topology on α to its neighborhood filter at a fixed point a : α.

              Equations
              • nhdsAdjoint a f = { IsOpen := fun (s : Set α) => a ss f, isOpen_univ := , isOpen_inter := , isOpen_sUnion := }
              Instances For
                theorem gc_nhds {α : Type u} (a : α) :
                theorem nhds_mono {α : Type u} {t₁ t₂ : TopologicalSpace α} {a : α} (h : t₁ t₂) :
                theorem le_iff_nhds {α : Type u_1} (t t' : TopologicalSpace α) :
                t t' ∀ (x : α), nhds x nhds x
                theorem isOpen_singleton_nhdsAdjoint {α : Type u_1} {a b : α} (f : Filter α) (hb : b a) :
                IsOpen {b}
                theorem nhds_nhdsAdjoint_same {α : Type u} (a : α) (f : Filter α) :
                nhds a = pure a f
                @[deprecated nhds_nhdsAdjoint_same]
                theorem nhdsAdjoint_nhds {α : Type u} (a : α) (f : Filter α) :
                nhds a = pure a f

                Alias of nhds_nhdsAdjoint_same.

                theorem nhds_nhdsAdjoint_of_ne {α : Type u} {a b : α} (f : Filter α) (h : b a) :
                nhds b = pure b
                @[deprecated nhds_nhdsAdjoint_of_ne]
                theorem nhdsAdjoint_nhds_of_ne {α : Type u} (a : α) (f : Filter α) {b : α} (h : b a) :
                nhds b = pure b
                theorem nhds_nhdsAdjoint {α : Type u} [DecidableEq α] (a : α) (f : Filter α) :
                nhds = Function.update pure a (pure a f)
                theorem le_nhdsAdjoint_iff' {α : Type u} {a : α} {f : Filter α} {t : TopologicalSpace α} :
                t nhdsAdjoint a f nhds a pure a f ∀ (b : α), b anhds b = pure b
                theorem le_nhdsAdjoint_iff {α : Type u_1} (a : α) (f : Filter α) (t : TopologicalSpace α) :
                t nhdsAdjoint a f nhds a pure a f ∀ (b : α), b aIsOpen {b}
                theorem nhds_iInf {α : Type u} {ι : Sort u_1} {t : ιTopologicalSpace α} {a : α} :
                nhds a = ⨅ (i : ι), nhds a
                theorem nhds_sInf {α : Type u} {s : Set (TopologicalSpace α)} {a : α} :
                nhds a = ts, nhds a
                theorem nhds_inf {α : Type u} {t₁ t₂ : TopologicalSpace α} {a : α} :
                theorem nhds_top {α : Type u} {a : α} :
                theorem isOpen_sup {α : Type u} {t₁ t₂ : TopologicalSpace α} {s : Set α} :
                theorem continuous_iff_coinduced_le {α : Type u} {β : Type v} {f : αβ} {t₁ : TopologicalSpace α} {t₂ : TopologicalSpace β} :
                theorem continuous_iff_le_induced {α : Type u} {β : Type v} {f : αβ} {t₁ : TopologicalSpace α} {t₂ : TopologicalSpace β} :
                theorem continuous_generateFrom_iff {α : Type u} {β : Type v} {f : αβ} {t : TopologicalSpace α} {b : Set (Set β)} :
                Continuous f sb, IsOpen (f ⁻¹' s)
                theorem continuous_induced_dom {α : Type u} {β : Type v} {f : αβ} {t : TopologicalSpace β} :
                theorem continuous_induced_rng {α : Type u} {β : Type v} {γ : Type u_1} {f : αβ} {g : γα} {t₂ : TopologicalSpace β} {t₁ : TopologicalSpace γ} :
                theorem continuous_coinduced_rng {α : Type u} {β : Type v} {f : αβ} {t : TopologicalSpace α} :
                theorem continuous_coinduced_dom {α : Type u} {β : Type v} {γ : Type u_1} {f : αβ} {g : βγ} {t₁ : TopologicalSpace α} {t₂ : TopologicalSpace γ} :
                theorem continuous_le_dom {α : Type u} {β : Type v} {f : αβ} {t₁ t₂ : TopologicalSpace α} {t₃ : TopologicalSpace β} (h₁ : t₂ t₁) (h₂ : Continuous f) :
                theorem continuous_le_rng {α : Type u} {β : Type v} {f : αβ} {t₁ : TopologicalSpace α} {t₂ t₃ : TopologicalSpace β} (h₁ : t₂ t₃) (h₂ : Continuous f) :
                theorem continuous_sup_dom {α : Type u} {β : Type v} {f : αβ} {t₁ t₂ : TopologicalSpace α} {t₃ : TopologicalSpace β} :
                theorem continuous_sup_rng_left {α : Type u} {β : Type v} {f : αβ} {t₁ : TopologicalSpace α} {t₃ t₂ : TopologicalSpace β} :
                theorem continuous_sup_rng_right {α : Type u} {β : Type v} {f : αβ} {t₁ : TopologicalSpace α} {t₃ t₂ : TopologicalSpace β} :
                theorem continuous_sSup_dom {α : Type u} {β : Type v} {f : αβ} {T : Set (TopologicalSpace α)} {t₂ : TopologicalSpace β} :
                Continuous f tT, Continuous f
                theorem continuous_sSup_rng {α : Type u} {β : Type v} {f : αβ} {t₁ : TopologicalSpace α} {t₂ : Set (TopologicalSpace β)} {t : TopologicalSpace β} (h₁ : t t₂) (hf : Continuous f) :
                theorem continuous_iSup_dom {α : Type u} {β : Type v} {f : αβ} {ι : Sort u_2} {t₁ : ιTopologicalSpace α} {t₂ : TopologicalSpace β} :
                Continuous f ∀ (i : ι), Continuous f
                theorem continuous_iSup_rng {α : Type u} {β : Type v} {f : αβ} {ι : Sort u_2} {t₁ : TopologicalSpace α} {t₂ : ιTopologicalSpace β} {i : ι} (h : Continuous f) :
                theorem continuous_inf_rng {α : Type u} {β : Type v} {f : αβ} {t₁ : TopologicalSpace α} {t₂ t₃ : TopologicalSpace β} :
                theorem continuous_inf_dom_left {α : Type u} {β : Type v} {f : αβ} {t₁ t₂ : TopologicalSpace α} {t₃ : TopologicalSpace β} :
                theorem continuous_inf_dom_right {α : Type u} {β : Type v} {f : αβ} {t₁ t₂ : TopologicalSpace α} {t₃ : TopologicalSpace β} :
                theorem continuous_sInf_dom {α : Type u} {β : Type v} {f : αβ} {t₁ : Set (TopologicalSpace α)} {t₂ : TopologicalSpace β} {t : TopologicalSpace α} (h₁ : t t₁) :
                theorem continuous_sInf_rng {α : Type u} {β : Type v} {f : αβ} {t₁ : TopologicalSpace α} {T : Set (TopologicalSpace β)} :
                Continuous f tT, Continuous f
                theorem continuous_iInf_dom {α : Type u} {β : Type v} {f : αβ} {ι : Sort u_2} {t₁ : ιTopologicalSpace α} {t₂ : TopologicalSpace β} {i : ι} :
                theorem continuous_iInf_rng {α : Type u} {β : Type v} {f : αβ} {ι : Sort u_2} {t₁ : TopologicalSpace α} {t₂ : ιTopologicalSpace β} :
                Continuous f ∀ (i : ι), Continuous f
                theorem continuous_bot {α : Type u} {β : Type v} {f : αβ} {t : TopologicalSpace β} :
                theorem continuous_top {α : Type u} {β : Type v} {f : αβ} {t : TopologicalSpace α} :
                theorem continuous_id_iff_le {α : Type u} {t t' : TopologicalSpace α} :
                theorem continuous_id_of_le {α : Type u} {t t' : TopologicalSpace α} (h : t t') :
                theorem mem_nhds_induced {α : Type u} {β : Type v} [T : TopologicalSpace α] (f : βα) (a : β) (s : Set β) :
                s nhds a unhds (f a), f ⁻¹' u s
                theorem nhds_induced {α : Type u} {β : Type v} [T : TopologicalSpace α] (f : βα) (a : β) :
                nhds a = Filter.comap f (nhds (f a))
                theorem induced_iff_nhds_eq {α : Type u} {β : Type v} [tα : TopologicalSpace α] [tβ : TopologicalSpace β] (f : βα) :
                = TopologicalSpace.induced f ∀ (b : β), nhds b = Filter.comap f (nhds (f b))
                theorem map_nhds_induced_of_surjective {α : Type u} {β : Type v} [T : TopologicalSpace α] {f : βα} (hf : Function.Surjective f) (a : β) :
                Filter.map f (nhds a) = nhds (f a)
                theorem continuous_nhdsAdjoint_dom {α : Type u} {β : Type v} [TopologicalSpace β] {f : αβ} {a : α} {l : Filter α} :
                theorem coinduced_nhdsAdjoint {α : Type u} {β : Type v} (f : αβ) (a : α) (l : Filter α) :
                theorem isOpen_induced_eq {α : Type u_1} {β : Type u_2} [t : TopologicalSpace β] {f : αβ} {s : Set α} :
                IsOpen s s Set.preimage f '' {s : Set β | IsOpen s}
                theorem isOpen_induced {α : Type u_1} {β : Type u_2} [t : TopologicalSpace β] {f : αβ} {s : Set β} (h : IsOpen s) :
                theorem map_nhds_induced_eq {α : Type u_1} {β : Type u_2} [t : TopologicalSpace β] {f : αβ} (a : α) :
                theorem map_nhds_induced_of_mem {α : Type u_1} {β : Type u_2} [t : TopologicalSpace β] {f : αβ} {a : α} (h : Set.range f nhds (f a)) :
                Filter.map f (nhds a) = nhds (f a)
                theorem closure_induced {α : Type u_1} {β : Type u_2} [t : TopologicalSpace β] {f : αβ} {a : α} {s : Set α} :
                a closure s f a closure (f '' s)
                theorem isClosed_induced_iff' {α : Type u_1} {β : Type u_2} [t : TopologicalSpace β] {f : αβ} {s : Set α} :
                IsClosed s ∀ (a : α), f a closure (f '' s)a s
                @[simp]
                @[simp]
                theorem tendsto_nhds_true {α : Type u_1} {l : Filter α} {p : αProp} :
                Filter.Tendsto p l (nhds True) ∀ᶠ (x : α) in l, p x
                theorem tendsto_nhds_Prop {α : Type u_1} {l : Filter α} {p : αProp} {q : Prop} :
                Filter.Tendsto p l (nhds q) q∀ᶠ (x : α) in l, p x
                theorem continuous_Prop {α : Type u_1} [TopologicalSpace α] {p : αProp} :
                Continuous p IsOpen {x : α | p x}
                theorem isOpen_iff_continuous_mem {α : Type u_1} [TopologicalSpace α] {s : Set α} :
                IsOpen s Continuous fun (x : α) => x s
                theorem setOf_isOpen_sup {α : Type u} (t₁ t₂ : TopologicalSpace α) :
                {s : Set α | IsOpen s} = {s : Set α | IsOpen s} {s : Set α | IsOpen s}
                theorem generateFrom_iUnion {α : Type u} {ι : Sort v} {f : ιSet (Set α)} :
                TopologicalSpace.generateFrom (⋃ (i : ι), f i) = ⨅ (i : ι), TopologicalSpace.generateFrom (f i)
                theorem setOf_isOpen_iSup {α : Type u} {ι : Sort v} {t : ιTopologicalSpace α} :
                {s : Set α | IsOpen s} = ⋂ (i : ι), {s : Set α | IsOpen s}
                theorem setOf_isOpen_sSup {α : Type u} {T : Set (TopologicalSpace α)} :
                {s : Set α | IsOpen s} = tT, {s : Set α | IsOpen s}
                theorem generateFrom_union_isOpen {α : Type u} (a b : TopologicalSpace α) :
                TopologicalSpace.generateFrom ({s : Set α | IsOpen s} {s : Set α | IsOpen s}) = a b
                theorem generateFrom_iUnion_isOpen {α : Type u} {ι : Sort v} (f : ιTopologicalSpace α) :
                TopologicalSpace.generateFrom (⋃ (i : ι), {s : Set α | IsOpen s}) = ⨅ (i : ι), f i
                theorem generateFrom_inter {α : Type u} (a b : TopologicalSpace α) :
                TopologicalSpace.generateFrom ({s : Set α | IsOpen s} {s : Set α | IsOpen s}) = a b
                theorem generateFrom_iInter {α : Type u} {ι : Sort v} (f : ιTopologicalSpace α) :
                TopologicalSpace.generateFrom (⋂ (i : ι), {s : Set α | IsOpen s}) = ⨆ (i : ι), f i
                theorem generateFrom_iInter_of_generateFrom_eq_self {α : Type u} {ι : Sort v} (f : ιSet (Set α)) (hf : ∀ (i : ι), {s : Set α | IsOpen s} = f i) :
                TopologicalSpace.generateFrom (⋂ (i : ι), f i) = ⨆ (i : ι), TopologicalSpace.generateFrom (f i)
                theorem isOpen_iSup_iff {α : Type u} {ι : Sort v} {t : ιTopologicalSpace α} {s : Set α} :
                IsOpen s ∀ (i : ι), IsOpen s
                theorem isOpen_sSup_iff {α : Type u} {s : Set α} {T : Set (TopologicalSpace α)} :
                IsOpen s tT, IsOpen s
                theorem isClosed_iSup_iff {α : Type u} {ι : Sort v} {t : ιTopologicalSpace α} {s : Set α} :
                IsClosed s ∀ (i : ι), IsClosed s
                theorem isClosed_sSup_iff {α : Type u} {s : Set α} {T : Set (TopologicalSpace α)} :
                IsClosed s tT, IsClosed s