Documentation

Mathlib.Topology.Algebra.Module.ClosedSubmodule

Closed submodules of a topological module #

This file builds the frame of closed R-submodules of a topological module M.

One can turn s : Submodule R E + hs : IsClosed s into s : ClosedSubmodule R E in a tactic block by doing lift s to ClosedSubmodule R E using hs.

TODO #

Actually provide the Order.Frame (ClosedSubmodule R M) instance.

structure ClosedSubmodule (R : Type u_2) (M : Type u_3) [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] extends Submodule R M, TopologicalSpace.Closeds M :
Type u_3

The type of closed submodules of a topological module.

Instances For
    theorem ClosedSubmodule.ext {R : Type u_2} {M : Type u_3} {inst✝ : Semiring R} {inst✝¹ : AddCommMonoid M} {inst✝² : TopologicalSpace M} {inst✝³ : Module R M} {x y : ClosedSubmodule R M} (carrier : (↑x).carrier = (↑y).carrier) :
    x = y
    theorem ClosedSubmodule.ext_iff {R : Type u_2} {M : Type u_3} {inst✝ : Semiring R} {inst✝¹ : AddCommMonoid M} {inst✝² : TopologicalSpace M} {inst✝³ : Module R M} {x y : ClosedSubmodule R M} :
    x = y ↔ (↑x).carrier = (↑y).carrier
    @[implicit_reducible]
    @[implicit_reducible]
    instance ClosedSubmodule.instCoeSubmodule {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] :
    Coe (ClosedSubmodule R M) (Submodule R M)
    @[simp]
    theorem ClosedSubmodule.carrier_eq_coe {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] (s : ClosedSubmodule R M) :
    (↑s).carrier = ↑s
    @[simp]
    theorem ClosedSubmodule.mem_mk {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] {x : M} {s : Submodule R M} {hs : IsClosed s.carrier} :
    x ∈ { toSubmodule := s, isClosed' := hs } ↔ x ∈ s
    @[simp]
    theorem ClosedSubmodule.coe_toSubmodule {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] (s : ClosedSubmodule R M) :
    ↑↑s = ↑s
    @[simp]
    theorem ClosedSubmodule.mem_toSubmodule_iff {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] (x : M) (s : ClosedSubmodule R M) :
    x ∈ ↑s ↔ x ∈ s
    @[simp]
    theorem ClosedSubmodule.coe_toCloseds {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] (s : ClosedSubmodule R M) :
    ↑↑s = ↑s
    @[simp]
    theorem ClosedSubmodule.toSubmodule_le_toSubmodule {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] {s t : ClosedSubmodule R M} :
    ↑s ≀ ↑t ↔ s ≀ t
    def ClosedSubmodule.comap {R : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [AddCommMonoid N] [TopologicalSpace N] [Module R N] (f : M β†’L[R] N) (s : ClosedSubmodule R N) :

    The preimage of a closed submodule under a continuous linear map as a closed submodule.

    Instances For
      @[simp]
      theorem ClosedSubmodule.coe_comap {R : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [AddCommMonoid N] [TopologicalSpace N] [Module R N] (f : M β†’L[R] N) (s : ClosedSubmodule R N) :
      ↑(comap f s) = ⇑f ⁻¹' ↑s
      @[simp]
      theorem ClosedSubmodule.mem_comap {R : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [AddCommMonoid N] [TopologicalSpace N] [Module R N] {f : M β†’L[R] N} {s : ClosedSubmodule R N} {x : M} :
      x ∈ comap f s ↔ f x ∈ s
      @[simp]
      theorem ClosedSubmodule.toSubmodule_comap {R : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [AddCommMonoid N] [TopologicalSpace N] [Module R N] (f : M β†’L[R] N) (s : ClosedSubmodule R N) :
      ↑(comap f s) = Submodule.comap ↑f ↑s
      theorem ClosedSubmodule.comap_comap {R : Type u_2} {M : Type u_3} {N : Type u_4} {O : Type u_5} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [AddCommMonoid N] [TopologicalSpace N] [Module R N] [AddCommMonoid O] [TopologicalSpace O] [Module R O] (g : N β†’L[R] O) (f : M β†’L[R] N) (s : ClosedSubmodule R O) :
      comap f (comap g s) = comap (g.comp f) s
      @[implicit_reducible]
      instance ClosedSubmodule.instInf {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] :
      Min (ClosedSubmodule R M)
      @[implicit_reducible]
      @[simp]
      theorem ClosedSubmodule.toSubmodule_sInf {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] (S : Set (ClosedSubmodule R M)) :
      ↑(sInf S) = β¨… s ∈ S, ↑s
      @[simp]
      theorem ClosedSubmodule.toSubmodule_iInf {ΞΉ : Sort u_1} {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] (f : ΞΉ β†’ ClosedSubmodule R M) :
      ↑(β¨… (i : ΞΉ), f i) = β¨… (i : ΞΉ), ↑(f i)
      @[simp]
      theorem ClosedSubmodule.coe_sInf {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] (S : Set (ClosedSubmodule R M)) :
      ↑(sInf S) = β¨… s ∈ S, ↑s
      @[simp]
      theorem ClosedSubmodule.coe_iInf {ΞΉ : Sort u_1} {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] (f : ΞΉ β†’ ClosedSubmodule R M) :
      ↑(β¨… (i : ΞΉ), f i) = β¨… (i : ΞΉ), ↑(f i)
      @[simp]
      theorem ClosedSubmodule.mem_sInf {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] {x : M} {S : Set (ClosedSubmodule R M)} :
      x ∈ sInf S ↔ βˆ€ s ∈ S, x ∈ s
      @[simp]
      theorem ClosedSubmodule.mem_iInf {ΞΉ : Sort u_1} {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] {x : M} {f : ΞΉ β†’ ClosedSubmodule R M} :
      x ∈ β¨… (i : ΞΉ), f i ↔ βˆ€ (i : ΞΉ), x ∈ f i
      @[simp]
      theorem ClosedSubmodule.toSubmodule_inf {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] (s t : ClosedSubmodule R M) :
      ↑(s βŠ“ t) = ↑s βŠ“ ↑t
      @[simp]
      theorem ClosedSubmodule.coe_inf {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] (s t : ClosedSubmodule R M) :
      ↑(s βŠ“ t) = ↑s βŠ“ ↑t
      @[simp]
      theorem ClosedSubmodule.mem_inf {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] {s t : ClosedSubmodule R M} {x : M} :
      x ∈ s βŠ“ t ↔ x ∈ s ∧ x ∈ t
      @[implicit_reducible]
      @[simp]
      theorem ClosedSubmodule.mem_top {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] {x : M} :
      x ∈ ⊀
      @[implicit_reducible]
      @[simp]
      theorem ClosedSubmodule.coe_bot {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [T1Space M] :
      ↑βŠ₯ = {0}
      @[simp]
      theorem ClosedSubmodule.mem_bot {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] {x : M} [T1Space M] :
      x ∈ βŠ₯ ↔ x = 0

      The closure of a submodule as a closed submodule.

      Instances For
        @[simp]
        theorem Submodule.coe_closure {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [ContinuousAdd M] [ContinuousConstSMul R M] (s : Submodule R M) :
        ↑s.closure = closure ↑s
        @[simp]
        theorem Submodule.closure_le {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [ContinuousAdd M] [ContinuousConstSMul R M] {s : Submodule R M} {t : ClosedSubmodule R M} :
        s.closure ≀ t ↔ s ≀ ↑t
        @[simp]
        theorem Submodule.mem_closure_iff {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [ContinuousAdd M] [ContinuousConstSMul R M] {x : M} {s : Submodule R M} :
        x ∈ s.closure ↔ x ∈ s.topologicalClosure
        @[simp]
        theorem Submodule.closure_eq {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [ContinuousAdd M] [ContinuousConstSMul R M] {s : ClosedSubmodule R M} :
        (↑s).closure = s
        theorem Submodule.closure_eq' {R : Type u_2} {M : Type u_3} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [ContinuousAdd M] [ContinuousConstSMul R M] {s : Submodule R M} (hs : IsClosed s.carrier) :
        s.closure = { toSubmodule := s, isClosed' := hs }

        The closure of the image of a closed submodule under a continuous linear map is a closed submodule.

        ClosedSubmodule.map f is left-adjoint to ClosedSubmodule.comap f. See ClosedSubmodule.gc_map_comap.

        Instances For
          @[implicit_reducible]
          @[simp]
          theorem ClosedSubmodule.toSubmodule_sup {R : Type u_2} {N : Type u_4} [Semiring R] [AddCommMonoid N] [TopologicalSpace N] [Module R N] [ContinuousAdd N] [ContinuousConstSMul R N] {s t : ClosedSubmodule R N} :
          ↑(s βŠ” t) = ↑(↑s βŠ” ↑t).closure
          @[simp]
          theorem ClosedSubmodule.coe_sup {R : Type u_2} {N : Type u_4} [Semiring R] [AddCommMonoid N] [TopologicalSpace N] [Module R N] [ContinuousAdd N] [ContinuousConstSMul R N] {s t : ClosedSubmodule R N} :
          ↑(s βŠ” t) = closure (↑s βŠ” ↑t).carrier
          @[simp]
          theorem ClosedSubmodule.mem_sup {R : Type u_2} {N : Type u_4} [Semiring R] [AddCommMonoid N] [TopologicalSpace N] [Module R N] [ContinuousAdd N] [ContinuousConstSMul R N] {s t : ClosedSubmodule R N} {x : N} :
          x ∈ s βŠ” t ↔ x ∈ closure (↑s βŠ” ↑t).carrier
          @[simp]
          theorem ClosedSubmodule.toSubmodule_sSup {R : Type u_2} {N : Type u_4} [Semiring R] [AddCommMonoid N] [TopologicalSpace N] [Module R N] [ContinuousAdd N] [ContinuousConstSMul R N] (S : Set (ClosedSubmodule R N)) :
          ↑(sSup S) = ↑(⨆ s ∈ S, ↑s).closure
          @[simp]
          theorem ClosedSubmodule.toSubmodule_iSup {ΞΉ : Sort u_1} {R : Type u_2} {N : Type u_4} [Semiring R] [AddCommMonoid N] [TopologicalSpace N] [Module R N] [ContinuousAdd N] [ContinuousConstSMul R N] (f : ΞΉ β†’ ClosedSubmodule R N) :
          ↑(⨆ (i : ΞΉ), f i) = ↑(⨆ (i : ΞΉ), ↑(f i)).closure
          @[simp]
          theorem ClosedSubmodule.coe_sSup {R : Type u_2} {N : Type u_4} [Semiring R] [AddCommMonoid N] [TopologicalSpace N] [Module R N] [ContinuousAdd N] [ContinuousConstSMul R N] (S : Set (ClosedSubmodule R N)) :
          ↑(sSup S) = closure (⨆ s ∈ S, ↑s).carrier
          @[simp]
          theorem ClosedSubmodule.coe_iSup {ΞΉ : Sort u_1} {R : Type u_2} {N : Type u_4} [Semiring R] [AddCommMonoid N] [TopologicalSpace N] [Module R N] [ContinuousAdd N] [ContinuousConstSMul R N] (f : ΞΉ β†’ ClosedSubmodule R N) :
          ↑(⨆ (i : ΞΉ), f i) = closure (⨆ (i : ΞΉ), ↑(f i)).carrier
          @[simp]
          theorem ClosedSubmodule.mem_sSup {R : Type u_2} {N : Type u_4} [Semiring R] [AddCommMonoid N] [TopologicalSpace N] [Module R N] [ContinuousAdd N] [ContinuousConstSMul R N] {x : N} {S : Set (ClosedSubmodule R N)} :
          x ∈ sSup S ↔ x ∈ closure (⨆ s ∈ S, ↑s).carrier
          @[simp]
          theorem ClosedSubmodule.mem_iSup {ΞΉ : Sort u_1} {R : Type u_2} {N : Type u_4} [Semiring R] [AddCommMonoid N] [TopologicalSpace N] [Module R N] [ContinuousAdd N] [ContinuousConstSMul R N] {x : N} {f : ΞΉ β†’ ClosedSubmodule R N} :
          x ∈ ⨆ (i : ΞΉ), f i ↔ x ∈ closure (⨆ (i : ΞΉ), ↑(f i)).carrier

          A continuous equivalence f between modules M and N on R induces an equivalence between closed submodules in M and those in N through map f. The definition does not use ClosedSubmodule.map because that has additional ContinuousAdd and ContinuousConstSMul type-class assumptions.

          Instances For
            @[simp]
            theorem ClosedSubmodule.mapEquiv_apply {R : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [AddCommMonoid N] [TopologicalSpace N] [Module R N] (f : M ≃L[R] N) (s : ClosedSubmodule R M) :
            ↑((mapEquiv f) s) = Submodule.map ↑f.toLinearEquiv ↑s
            @[simp]
            theorem ClosedSubmodule.mem_mapEquiv_iff {R : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [AddCommMonoid N] [TopologicalSpace N] [Module R N] (f : M ≃L[R] N) (s : ClosedSubmodule R M) (x : N) :
            x ∈ (mapEquiv f) s ↔ f.symm x ∈ s
            theorem ClosedSubmodule.mem_mapEquiv_iff' {R : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [AddCommMonoid N] [TopologicalSpace N] [Module R N] (f : M ≃L[R] N) (s : ClosedSubmodule R M) (x : M) :
            f x ∈ (mapEquiv f) s ↔ x ∈ s
            @[simp]
            theorem ClosedSubmodule.mapEquiv_inf_eq {R : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [AddCommMonoid N] [TopologicalSpace N] [Module R N] (f : M ≃L[R] N) {s t : ClosedSubmodule R M} :
            (mapEquiv f) (s βŠ“ t) = (mapEquiv f) s βŠ“ (mapEquiv f) t
            @[simp]
            theorem ClosedSubmodule.mapEquiv_sup_eq {R : Type u_2} {M : Type u_3} {N : Type u_4} [Semiring R] [AddCommMonoid M] [TopologicalSpace M] [Module R M] [AddCommMonoid N] [TopologicalSpace N] [Module R N] [ContinuousAdd N] [ContinuousConstSMul R N] [ContinuousAdd M] [ContinuousConstSMul R M] (f : M ≃L[R] N) {s t : ClosedSubmodule R M} :
            (mapEquiv f) (s βŠ” t) = (mapEquiv f) s βŠ” (mapEquiv f) t
            instance instCompleteSpaceSubtypeMemClosedSubmodule {π•œ : Type u_6} {H : Type u_7} [Semiring π•œ] [AddCommMonoid H] [UniformSpace H] [Module π•œ H] [CompleteSpace H] (K : ClosedSubmodule π•œ H) :
            CompleteSpace β†₯K