Documentation

TauCeti.Algebra.Coalgebra.Subcomodule.Basic

Subcomodules #

This file defines subcomodules of a right comodule as submodules whose elements have coaction in the tensor product of the submodule with the coalgebra. It is deliberately a lightweight predicate-style API: over a general commutative semiring, the map N ⊗ C → M ⊗ C need not be known injective, so the induced comodule structure on N is not registered here.

Finite generation of a subcomodule is expressed by Module.Finite R N.toSubmodule; images under comodule morphisms preserve this property.

Main definitions #

References #

This follows the standard definition of a subcomodule: N ≤ M satisfies ρ(N) ⊆ N ⊗ C. See Sweedler, Hopf Algebras, Chapter 2.

The lightweight range-based API follows the pattern of TauCeti.Subcoalgebra.

structure TauCeti.Subcomodule (R : Type u) (C : Type v) (M : Type w) [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] :

A subcomodule of a right C-comodule M.

It is an R-submodule carrier such that the coaction of every element of carrier lies in the range of carrier ⊗ C → M ⊗ C.

Instances For
    @[instance_reducible]
    instance TauCeti.Subcomodule.instSetLike {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] :
    Equations
    instance TauCeti.Subcomodule.instSMulMemClass {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] :
    def TauCeti.Subcomodule.toSubmodule {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] (N : Subcomodule R C M) :

    The underlying submodule of a subcomodule.

    Equations
    Instances For
      @[simp]
      theorem TauCeti.Subcomodule.mem_carrier {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Subcomodule R C M} {m : M} :
      m ∈ N.carrier ↔ m ∈ N
      @[simp]
      theorem TauCeti.Subcomodule.mem_toSubmodule {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Subcomodule R C M} {m : M} :
      theorem TauCeti.Subcomodule.finite {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] (N : Subcomodule R C M) [IsNoetherian R M] :

      A subcomodule of a noetherian module is finitely generated as an R-module.

      theorem TauCeti.Subcomodule.le_def {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N P : Subcomodule R C M} :
      N ≤ P ↔ ∀ ⦃m : M⦄, m ∈ N → m ∈ P
      theorem TauCeti.Subcomodule.ext {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N P : Subcomodule R C M} (h : ∀ (m : M), m ∈ N ↔ m ∈ P) :
      N = P

      Two subcomodules are equal when they contain the same elements.

      theorem TauCeti.Subcomodule.ext_iff {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N P : Subcomodule R C M} :
      N = P ↔ ∀ (m : M), m ∈ N ↔ m ∈ P
      theorem TauCeti.Subcomodule.coact_mem {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] (N : Subcomodule R C M) {m : M} (hm : m ∈ N) :

      The coaction of an element of a subcomodule belongs to its tensor product with the coalgebra.

      theorem TauCeti.Subcomodule.rid_lTensor_coact_mem {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] (N : Subcomodule R C M) (f : C →ₗ[R] R) {m : M} (hm : m ∈ N) :

      A subcomodule is stable under contracting the coaction against a linear functional on the coalgebra.

      For a comodule over a Hopf algebra the contractions along the algebra homomorphisms C →ₐ[R] R are the actions of the R-valued points of the represented affine group, so this is the statement that a subcomodule is a subrepresentation.

      def TauCeti.Subcomodule.ofSubmodule {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] (N : Submodule R M) (hN : ∀ ⦃m : M⦄, m ∈ N → Comodule.coact m ∈ (TensorProduct.map N.subtype LinearMap.id).range) :

      Constructor from a submodule and the tensor-product stability condition.

      Equations
      Instances For
        @[simp]
        theorem TauCeti.Subcomodule.ofSubmodule_carrier {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] (N : Submodule R M) (hN : ∀ ⦃m : M⦄, m ∈ N → Comodule.coact m ∈ (TensorProduct.map N.subtype LinearMap.id).range) :
        @[simp]
        theorem TauCeti.Subcomodule.mem_ofSubmodule {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Submodule R M} {hN : ∀ ⦃m : M⦄, m ∈ N → Comodule.coact m ∈ (TensorProduct.map N.subtype LinearMap.id).range} {m : M} :
        m ∈ ofSubmodule N hN ↔ m ∈ N

        The coaction of any element lies in the tensor product of the top submodule with C, because the inclusion of ⊤ is surjective.

        @[instance_reducible]
        instance TauCeti.Subcomodule.instTop {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] :

        The full module as a subcomodule.

        Equations
        @[simp]
        @[simp]
        theorem TauCeti.Subcomodule.mem_top {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] (m : M) :
        @[instance_reducible]
        instance TauCeti.Subcomodule.instOrderTop {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] :
        Equations
        @[instance_reducible]
        instance TauCeti.Subcomodule.instBot {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] :

        The zero submodule as a subcomodule.

        Equations
        @[simp]
        @[simp]
        theorem TauCeti.Subcomodule.mem_bot {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {m : M} :
        m ∈ ⊥ ↔ m = 0
        @[instance_reducible]
        instance TauCeti.Subcomodule.instOrderBot {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] :

        The zero subcomodule is contained in every subcomodule.

        Equations
        @[instance_reducible]
        instance TauCeti.Subcomodule.instBoundedOrder {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] :

        The zero and full subcomodules bound the order of subcomodules.

        Equations
        @[simp]
        theorem TauCeti.Subcomodule.toSubmodule_eq_top {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Subcomodule R C M} :

        The underlying submodule detects the full subcomodule.

        @[simp]
        theorem TauCeti.Subcomodule.toSubmodule_eq_bot {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Subcomodule R C M} :

        The underlying submodule detects the zero subcomodule.

        theorem TauCeti.Subcomodule.ne_bot_iff {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Subcomodule R C M} :
        N ≠ ⊥ ↔ ∃ m ∈ N, m ≠ 0

        A subcomodule is nonzero exactly when it contains a nonzero vector.

        theorem TauCeti.Subcomodule.isSimpleOrder_of_transitive {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {G : Type x} (v₀ : M) (hv₀ : v₀ ≠ 0) (act : G → M → M) (htrans : ∀ {v w : M}, v ≠ 0 → w ≠ 0 → ∃ (g : G), act g w = v) (hmem : ∀ (N : Subcomodule R C M) (g : G) {w : M}, w ∈ N → act g w ∈ N) :

        If a family of maps preserves every subcomodule and acts transitively on nonzero vectors, then the subcomodule lattice is simple.

        def TauCeti.Subcomodule.map {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] (A : Subcomodule R C M) (f : Comodule.Hom R C M N) :

        The image of a subcomodule under a comodule morphism.

        Equations
        Instances For
          @[simp]
          theorem TauCeti.Subcomodule.map_toSubmodule {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] (A : Subcomodule R C M) (f : Comodule.Hom R C M N) :

          The underlying submodule of the image subcomodule is the image of the underlying submodule.

          theorem TauCeti.Subcomodule.map_finite {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] (f : Comodule.Hom R C M N) (A : Subcomodule R C M) [Module.Finite R ↥A.toSubmodule] :

          The image of a finitely generated subcomodule is finitely generated as an R-module.

          theorem TauCeti.Subcomodule.mem_map {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] {A : Subcomodule R C M} {f : Comodule.Hom R C M N} {n : N} :
          n ∈ A.map f ↔ ∃ m ∈ A, f m = n

          Membership in the image subcomodule.

          theorem TauCeti.Subcomodule.mem_map_of_mem {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] (f : Comodule.Hom R C M N) {A : Subcomodule R C M} {m : M} (hm : m ∈ A) :
          f m ∈ A.map f

          The image of an element of a subcomodule belongs to the image subcomodule.

          theorem TauCeti.Subcomodule.map_le_iff {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] {A : Subcomodule R C M} {f : Comodule.Hom R C M N} {B : Subcomodule R C N} :
          A.map f ≤ B ↔ ∀ ⦃m : M⦄, m ∈ A → f m ∈ B

          The image subcomodule is contained in B exactly when each image of an element of the source subcomodule belongs to B.

          theorem TauCeti.Subcomodule.map_mono {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] (f : Comodule.Hom R C M N) {A B : Subcomodule R C M} (hAB : A ≤ B) :
          A.map f ≤ B.map f

          The image construction is monotone in the source subcomodule.

          @[simp]
          theorem TauCeti.Subcomodule.map_bot {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] (f : Comodule.Hom R C M N) :

          The image of the bottom subcomodule is bottom.

          @[simp]
          theorem TauCeti.Subcomodule.map_top_toSubmodule {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] (f : Comodule.Hom R C M N) :

          The image of the top subcomodule is the range of the comodule morphism as a submodule.

          @[simp]
          theorem TauCeti.Subcomodule.map_id {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] (A : Subcomodule R C M) :
          A.map (Comodule.Hom.id R C M) = A

          The identity comodule morphism leaves a subcomodule unchanged.

          @[simp]
          theorem TauCeti.Subcomodule.map_map {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] {P : Type u_1} [AddCommMonoid P] [Module R P] [Comodule R C P] (A : Subcomodule R C M) (f : Comodule.Hom R C M N) (g : Comodule.Hom R C N P) :
          (A.map f).map g = A.map (g.comp f)

          Images of subcomodules compose with comodule morphisms.

          def TauCeti.Comodule.Hom.range {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] (f : Hom R C M N) :

          The image of a comodule morphism as a subcomodule of the codomain.

          Equations
          Instances For
            @[simp]
            theorem TauCeti.Comodule.Hom.range_toSubmodule {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] (f : Hom R C M N) :
            theorem TauCeti.Comodule.Hom.range_finite {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] (f : Hom R C M N) [Module.Finite R M] :

            The range of a comodule morphism out of a finitely generated module is finitely generated as an R-module.

            @[simp]
            theorem TauCeti.Comodule.Hom.mem_range {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] {f : Hom R C M N} {n : N} :
            n ∈ f.range ↔ ∃ (m : M), f m = n
            theorem TauCeti.Comodule.Hom.mem_range_self {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] (f : Hom R C M N) (m : M) :
            f m ∈ f.range

            A comodule morphism lands in its image subcomodule.

            theorem TauCeti.Comodule.Hom.range_le_iff {R : Type u} {C : Type v} {M : Type w} [CommSemiring R] [AddCommMonoid C] [Module R C] [Coalgebra R C] [AddCommMonoid M] [Module R M] [Comodule R C M] {N : Type x} [AddCommMonoid N] [Module R N] [Comodule R C N] {f : Hom R C M N} {P : Subcomodule R C N} :
            f.range ≤ P ↔ ∀ (m : M), f m ∈ P

            The range of a comodule morphism is contained in P exactly when each value of the morphism belongs to P.