Documentation

Mathlib.RingTheory.GradedAlgebra.Homogeneous.Submodule

Homogeneous submodules of a graded module #

This file defines homogeneous submodule of a graded module ⨁ᵢ ℳᵢ over graded ring ⨁ᵢ 𝒜ᵢ and operations on them.

Main definitions #

For any p : Submodule A M:

Implementation notes #

The notion of homogeneous submodule does not rely on a graded ring, only a decomposition of the module. However, most interesting properties of homogeneous submodules do rely on the base ring being a graded ring. For technical reasons, we make HomogeneousSubmodule depend on a graded ring. For example, if the definition of a homogeneous submodule does not depend on a graded ring, the instance that HomogeneousSubmodule is a complete lattice cannot be synthesized due to synthesization order.

Tags #

graded algebra, homogeneous

def Submodule.IsHomogeneous {ιM : Type u_2} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (p : Submodule A M) (ℳ : ιM → σM) [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] :

An A-submodule p ⊆ M is homogeneous if for every m ∈ p, all homogeneous components of m are in p.

Equations
Instances For
    theorem Submodule.IsHomogeneous.mem_iff {ιM : Type u_2} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] {p : Submodule A M} (ℳ : ιM → σM) [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] (hp : p.IsHomogeneous ℳ) {x : M} :
    x ∈ p ↔ ∀ (i : ιM), ↑(((DirectSum.decompose ℳ) x) i) ∈ p
    structure HomogeneousSubmodule {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (𝒜 : ιA → σA) (ℳ : ιM → σM) [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] extends Submodule A M :
    Type u_6

    For any Semiring A, we collect the homogeneous submodule of A-modules into a type.

    Instances For
      @[instance_reducible]
      instance instSetLikeHomogeneousSubmodule {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (𝒜 : ιA → σA) (ℳ : ιM → σM) [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] :
      Equations
      @[instance_reducible]
      instance instPartialOrderHomogeneousSubmodule {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (𝒜 : ιA → σA) (ℳ : ιM → σM) [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] :
      Equations
      instance instAddSubmonoidClassHomogeneousSubmodule {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (𝒜 : ιA → σA) (ℳ : ιM → σM) [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] :
      instance instSMulMemClassHomogeneousSubmodule {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (𝒜 : ιA → σA) (ℳ : ιM → σM) [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] :
      theorem HomogeneousSubmodule.isHomogeneous {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] {𝒜 : ιA → σA} {ℳ : ιM → σM} [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] (p : HomogeneousSubmodule 𝒜 ℳ) :
      theorem HomogeneousSubmodule.toSubmodule_injective {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (𝒜 : ιA → σA) (ℳ : ιM → σM) [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] :
      @[instance_reducible]
      instance HomogeneousSubmodule.setLike {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (𝒜 : ιA → σA) (ℳ : ιM → σM) [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] :
      Equations
      @[instance_reducible]
      instance instPartialOrderHomogeneousSubmodule_1 {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (𝒜 : ιA → σA) (ℳ : ιM → σM) [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] :
      Equations
      theorem HomogeneousSubmodule.ext {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (𝒜 : ιA → σA) (ℳ : ιM → σM) [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] {I J : HomogeneousSubmodule 𝒜 ℳ} (h : I.toSubmodule = J.toSubmodule) :
      I = J
      theorem HomogeneousSubmodule.ext_iff {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] {𝒜 : ιA → σA} {ℳ : ιM → σM} [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] {I J : HomogeneousSubmodule 𝒜 ℳ} :
      theorem HomogeneousSubmodule.ext' {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (𝒜 : ιA → σA) (ℳ : ιM → σM) [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] {I J : HomogeneousSubmodule 𝒜 ℳ} (h : ∀ (i : ιM), ∀ x ∈ ℳ i, x ∈ I ↔ x ∈ J) :
      I = J

      The set-theoretic extensionality of HomogeneousSubmodule.

      @[simp]
      theorem HomogeneousSubmodule.mem_toSubmodule_iff {ιA : Type u_1} {ιM : Type u_2} {σA : Type u_3} {σM : Type u_4} {A : Type u_5} {M : Type u_6} [Semiring A] [AddCommMonoid M] [Module A M] (𝒜 : ιA → σA) (ℳ : ιM → σM) [DecidableEq ιA] [AddMonoid ιA] [SetLike σA A] [AddSubmonoidClass σA A] [GradedRing 𝒜] [DecidableEq ιM] [SetLike σM M] [AddSubmonoidClass σM M] [DirectSum.Decomposition ℳ] [VAdd ιA ιM] [SetLike.GradedSMul 𝒜 ℳ] {I : HomogeneousSubmodule 𝒜 ℳ} {x : M} :