Documentation

Mathlib.Order.Sublocale

Sublocale #

Locales are the dual concept to frames. Locale theory is a branch of point-free topology, where intuitively locales are like topological spaces which may or may not have enough points. Sublocales of a locale generalize the concept of subspaces in topology to the point-free setting.

TODO #

Create separate definitions for sInf_mem and HImpClosed (also useful for CompleteSublattice)

References #

structure Sublocale (X : Type u_2) [Order.Frame X] :
Type u_2

A sublocale of a locale X is a set S which is closed under all meets and such that x ⇨ s ∈ S for all x : X and s ∈ S.

Note that locales are the same thing as frames, but with reverse morphisms, which is why we assume Frame X. We only need to define locales categorically. See Locale.

Instances For
    @[simp]
    theorem Sublocale.mem_carrier {X : Type u_1} [Order.Frame X] {S : Sublocale X} {a : X} :
    @[simp]
    theorem Sublocale.mem_mk {X : Type u_1} [Order.Frame X] {a : X} (carrier : Set X) (sInf_mem' : βˆ€ s βŠ† carrier, sInf s ∈ carrier) (himp_mem' : βˆ€ (a b : X), b ∈ carrier β†’ a ⇨ b ∈ carrier) :
    a ∈ { carrier := carrier, sInf_mem' := sInf_mem', himp_mem' := himp_mem' } ↔ a ∈ carrier
    @[simp]
    theorem Sublocale.mk_le_mk {X : Type u_1} [Order.Frame X] (carrier₁ carrierβ‚‚ : Set X) (sInf_mem'₁ : βˆ€ s βŠ† carrier₁, sInf s ∈ carrier₁) (sInf_mem'β‚‚ : βˆ€ s βŠ† carrierβ‚‚, sInf s ∈ carrierβ‚‚) (himp_mem'₁ : βˆ€ (a b : X), b ∈ carrier₁ β†’ a ⇨ b ∈ carrier₁) (himp_mem'β‚‚ : βˆ€ (a b : X), b ∈ carrierβ‚‚ β†’ a ⇨ b ∈ carrierβ‚‚) :
    { carrier := carrier₁, sInf_mem' := sInf_mem'₁, himp_mem' := himp_mem'₁ } ≀ { carrier := carrierβ‚‚, sInf_mem' := sInf_mem'β‚‚, himp_mem' := himp_mem'β‚‚ } ↔ carrier₁ βŠ† carrierβ‚‚
    theorem Sublocale.ext {X : Type u_1} [Order.Frame X] {S T : Sublocale X} (h : βˆ€ (x : X), x ∈ S ↔ x ∈ T) :
    S = T
    theorem Sublocale.ext_iff {X : Type u_1} [Order.Frame X] {S T : Sublocale X} :
    S = T ↔ βˆ€ (x : X), x ∈ S ↔ x ∈ T
    theorem Sublocale.sInf_mem {X : Type u_1} [Order.Frame X] {S : Sublocale X} {s : Set X} (hs : s βŠ† ↑S) :
    theorem Sublocale.iInf_mem {X : Type u_1} [Order.Frame X] {ΞΉ : Sort u_2} {S : Sublocale X} {f : ΞΉ β†’ X} (hf : βˆ€ (i : ΞΉ), f i ∈ S) :
    β¨… (i : ΞΉ), f i ∈ S
    theorem Sublocale.inf_mem {X : Type u_1} [Order.Frame X] {S : Sublocale X} {a b : X} (ha : a ∈ S) (hb : b ∈ S) :
    a βŠ“ b ∈ S
    theorem Sublocale.himp_mem {X : Type u_1} [Order.Frame X] {S : Sublocale X} {a b : X} (hb : b ∈ S) :
    instance Sublocale.carrier.instHImp {X : Type u_1} [Order.Frame X] {S : Sublocale X} :
    HImp β†₯S
    Equations
      instance Sublocale.carrier.instInfSet {X : Type u_1} [Order.Frame X] {S : Sublocale X} :
      InfSet β†₯S
      Equations
        @[simp]
        theorem Sublocale.coe_inf {X : Type u_1} [Order.Frame X] {S : Sublocale X} (a b : β†₯S) :
        ↑(a βŠ“ b) = ↑a βŠ“ ↑b
        @[simp]
        theorem Sublocale.coe_sInf {X : Type u_1} [Order.Frame X] {S : Sublocale X} (s : Set β†₯S) :
        ↑(sInf s) = sInf (Subtype.val '' s)
        @[simp]
        theorem Sublocale.coe_iInf {X : Type u_1} [Order.Frame X] {ΞΉ : Sort u_2} {S : Sublocale X} (f : ΞΉ β†’ β†₯S) :
        ↑(β¨… (i : ΞΉ), f i) = β¨… (i : ΞΉ), ↑(f i)
        @[simp]
        theorem Sublocale.coe_himp {X : Type u_1} [Order.Frame X] {S : Sublocale X} (a b : β†₯S) :
        ↑(a ⇨ b) = ↑a ⇨ ↑b
        def Sublocale.restrict {X : Type u_1} [Order.Frame X] (S : Sublocale X) :
        FrameHom X β†₯S

        The restriction from a locale X into the sublocale S.

        Equations
          Instances For

            The restriction corresponding to a sublocale forms a Galois insertion with the forgetful map from the sublocale to the original locale.

            Equations
              Instances For
                @[simp]
                theorem Sublocale.restrict_of_mem {X : Type u_1} [Order.Frame X] {S : Sublocale X} {a : X} (ha : a ∈ S) :

                The restriction from the locale X into a sublocale is a nucleus.

                Equations
                  Instances For
                    @[simp]
                    theorem Sublocale.toNucleus_apply {X : Type u_1} [Order.Frame X] (S : Sublocale X) (x : X) :
                    S.toNucleus x = ↑(S.restrict x)
                    @[simp]
                    theorem Sublocale.range_toNucleus {X : Type u_1} [Order.Frame X] {S : Sublocale X} :
                    Set.range ⇑S.toNucleus = ↑S

                    The range of a nucleus is a sublocale.

                    Equations
                      Instances For
                        @[simp]
                        theorem Nucleus.coe_toSublocale {X : Type u_1} [Order.Frame X] (n : Nucleus X) :
                        ↑n.toSublocale = Set.range ⇑n
                        @[simp]
                        theorem Nucleus.mem_toSublocale {X : Type u_1} [Order.Frame X] {n : Nucleus X} {x : X} :
                        x ∈ n.toSublocale ↔ βˆƒ (y : X), n y = x
                        @[simp]
                        theorem Nucleus.restrict_toSublocale {X : Type u_1} [Order.Frame X] (n : Nucleus X) (x : X) :

                        The nuclei on a frame corresponds exactly to the sublocales on this frame. The sublocales are ordered dually to the nuclei.

                        Equations
                          Instances For