Documentation

Mathlib.RingTheory.SimpleModule.Isotypic

Isotypic modules and isotypic components #

Main definitions #

Keywords #

isotypic component, fully invariant submodule

def IsIsotypicOfType (R : Type u_2) (M : Type u) (S : Type u_4) [Ring R] [AddCommGroup M] [AddCommGroup S] [Module R M] [Module R S] :

An R-module M is isotypic of type S if all simple submodules of M are isomorphic to S. If M is semisimple, it is equivalent to requiring that all simple quotients of M are isomorphic to S.

Instances For
    def IsIsotypic (R : Type u_2) (M : Type u) [Ring R] [AddCommGroup M] [Module R M] :

    An R-module M is isotypic if all its simple submodules are isomorphic.

    Instances For
      theorem IsIsotypicOfType.isIsotypic {R : Type u_2} {M : Type u} {S : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup S] [Module R M] [Module R S] (h : IsIsotypicOfType R M S) :
      theorem IsIsotypicOfType.of_subsingleton (R : Type u_2) (M : Type u) (S : Type u_4) [Ring R] [AddCommGroup M] [AddCommGroup S] [Module R M] [Module R S] [Subsingleton M] :
      theorem IsIsotypic.of_subsingleton (R : Type u_2) (M : Type u) [Ring R] [AddCommGroup M] [Module R M] [Subsingleton M] :
      theorem IsIsotypicOfType.of_linearEquiv_type {R : Type u_2} {M : Type u} {N : Type u_3} {S : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup N] [AddCommGroup S] [Module R M] [Module R N] [Module R S] (h : IsIsotypicOfType R M S) (e : S โ‰ƒโ‚—[R] N) :
      theorem IsIsotypicOfType.of_injective {R : Type u_2} {M : Type u} {N : Type u_3} {S : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup N] [AddCommGroup S] [Module R M] [Module R N] [Module R S] (h : IsIsotypicOfType R N S) (f : M โ†’โ‚—[R] N) (inj : Function.Injective โ‡‘f) :
      theorem IsIsotypic.of_injective {R : Type u_2} {M : Type u} {N : Type u_3} [Ring R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (h : IsIsotypic R N) (f : M โ†’โ‚—[R] N) (inj : Function.Injective โ‡‘f) :
      theorem LinearEquiv.isIsotypicOfType_iff {R : Type u_2} {M : Type u} {N : Type u_3} {S : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup N] [AddCommGroup S] [Module R M] [Module R N] [Module R S] (e : M โ‰ƒโ‚—[R] N) :
      theorem LinearEquiv.isIsotypicOfType_iff_type {R : Type u_2} {M : Type u} {N : Type u_3} {S : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup N] [AddCommGroup S] [Module R M] [Module R N] [Module R S] (e : N โ‰ƒโ‚—[R] S) :
      theorem LinearEquiv.isIsotypic_iff {R : Type u_2} {M : Type u} {N : Type u_3} [Ring R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (e : M โ‰ƒโ‚—[R] N) :
      IsIsotypic R M โ†” IsIsotypic R N
      theorem isIsotypicOfType_submodule_iff {R : Type u_2} {M : Type u} {S : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup S] [Module R M] [Module R S] {N : Submodule R M} :
      IsIsotypicOfType R (โ†ฅN) S โ†” โˆ€ m โ‰ค N, โˆ€ [IsSimpleModule R โ†ฅm], Nonempty (โ†ฅm โ‰ƒโ‚—[R] S)
      theorem isIsotypic_submodule_iff {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] {N : Submodule R M} :
      IsIsotypic R โ†ฅN โ†” โˆ€ m โ‰ค N, โˆ€ [IsSimpleModule R โ†ฅm], IsIsotypicOfType R โ†ฅN โ†ฅm
      theorem IsIsotypicOfType.linearEquiv_finsupp {R : Type u_2} {M : Type u} {S : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup S] [Module R M] [Module R S] [IsSemisimpleModule R M] (h : IsIsotypicOfType R M S) :
      โˆƒ (ฮน : Type u), Nonempty (M โ‰ƒโ‚—[R] ฮน โ†’โ‚€ S)
      theorem IsIsotypic.linearEquiv_finsupp {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [IsSemisimpleModule R M] [Nontrivial M] (h : IsIsotypic R M) :
      โˆƒ (ฮน : Type u) (_ : Nonempty ฮน) (S : Submodule R M), IsSimpleModule R โ†ฅS โˆง Nonempty (M โ‰ƒโ‚—[R] ฮน โ†’โ‚€ โ†ฅS)
      theorem IsIsotypicOfType.linearEquiv_fun {R : Type u_2} {M : Type u} {S : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup S] [Module R M] [Module R S] [IsSemisimpleModule R M] [Module.Finite R M] (h : IsIsotypicOfType R M S) :
      โˆƒ (n : โ„•), Nonempty (M โ‰ƒโ‚—[R] Fin n โ†’ S)
      theorem IsIsotypic.linearEquiv_fun {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [IsSemisimpleModule R M] [Module.Finite R M] [Nontrivial M] (h : IsIsotypic R M) :
      โˆƒ (n : โ„•) (_ : NeZero n) (S : Submodule R M), IsSimpleModule R โ†ฅS โˆง Nonempty (M โ‰ƒโ‚—[R] Fin n โ†’ โ†ฅS)
      theorem IsIsotypic.submodule_linearEquiv_fun {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [IsSemisimpleModule R M] {m : Submodule R M} [Module.Finite R โ†ฅm] [Nontrivial โ†ฅm] (h : IsIsotypic R โ†ฅm) :
      โˆƒ (n : โ„•) (_ : NeZero n), โˆƒ S โ‰ค m, IsSimpleModule R โ†ฅS โˆง Nonempty (โ†ฅm โ‰ƒโ‚—[R] Fin n โ†’ โ†ฅS)
      def isotypicComponent (R : Type u_2) (M : Type u) (S : Type u_4) [Ring R] [AddCommGroup M] [AddCommGroup S] [Module R M] [Module R S] :

      If S is a simple R-module, the S-isotypic component in an R-module M is the sum of all submodules of M isomorphic to S.

      Instances For
        def isotypicComponents (R : Type u_2) (M : Type u) [Ring R] [AddCommGroup M] [Module R M] :

        The set of all (nontrivial) isotypic components of a module.

        Instances For
          theorem bot_lt_isotypicComponent {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] (S : Submodule R M) [IsSimpleModule R โ†ฅS] :
          theorem bot_lt_isotypicComponents {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] {m : Submodule R M} (h : m โˆˆ isotypicComponents R M) :
          theorem LinearEquiv.isotypicComponent_eq {R : Type u_2} {M : Type u} {N : Type u_3} {S : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup N] [AddCommGroup S] [Module R M] [Module R N] [Module R S] (e : N โ‰ƒโ‚—[R] S) :
          theorem Submodule.le_linearEquiv_of_sSup_eq_top {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] (N : Submodule R M) [IsSimpleModule R โ†ฅN] (s : Set (Submodule R M)) [IsSemisimpleModule R M] (hs : sSup s = โŠค) :
          โˆƒ m โˆˆ s, โˆƒ S โ‰ค m, Nonempty (โ†ฅN โ‰ƒโ‚—[R] โ†ฅS)
          theorem Submodule.linearEquiv_of_sSup_eq_top {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] (N : Submodule R M) [IsSimpleModule R โ†ฅN] (s : Set (Submodule R M)) [h : โˆ€ (m : โ†‘s), IsSimpleModule R โ†ฅโ†‘m] (hs : sSup s = โŠค) :
          โˆƒ S โˆˆ s, Nonempty (โ†ฅN โ‰ƒโ‚—[R] โ†ฅS)
          theorem Submodule.le_linearEquiv_of_le_sSup {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] (N : Submodule R M) [IsSimpleModule R โ†ฅN] (s : Set (Submodule R M)) [hs : โˆ€ (m : โ†‘s), IsSemisimpleModule R โ†ฅโ†‘m] (hN : N โ‰ค sSup s) :
          โˆƒ m โˆˆ s, โˆƒ S โ‰ค m, Nonempty (โ†ฅN โ‰ƒโ‚—[R] โ†ฅS)

          If a simple module is contained in a sum of semisimple modules, it must be isomorphic to a submodule of one of the summands.

          theorem Submodule.linearEquiv_of_le_sSup {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] (N : Submodule R M) [IsSimpleModule R โ†ฅN] (s : Set (Submodule R M)) [simple : โˆ€ (m : โ†‘s), IsSimpleModule R โ†ฅโ†‘m] (hs : N โ‰ค sSup s) :
          โˆƒ S โˆˆ s, Nonempty (โ†ฅN โ‰ƒโ‚—[R] โ†ฅS)
          theorem instIsSimpleModuleSubtypeMemSubmoduleValSetSetOfNonemptyLinearEquivId (R : Type u_2) (M : Type u) (S : Type u_4) [Ring R] [AddCommGroup M] [AddCommGroup S] [Module R M] [Module R S] [IsSimpleModule R S] (m : โ†‘{m : Submodule R M | Nonempty (โ†ฅm โ‰ƒโ‚—[R] S)}) :
          IsSimpleModule R โ†ฅโ†‘m
          theorem IsIsotypic.isotypicComponent (R : Type u_2) (M : Type u) (S : Type u_4) [Ring R] [AddCommGroup M] [AddCommGroup S] [Module R M] [Module R S] [IsSimpleModule R S] :
          IsIsotypic R โ†ฅ(isotypicComponent R M S)
          theorem IsIsotypic.isotypicComponents {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] {m : Submodule R M} (h : m โˆˆ isotypicComponents R M) :
          IsIsotypic R โ†ฅm
          theorem eq_isotypicComponent_of_le {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] {S c : Submodule R M} (hc : c โˆˆ isotypicComponents R M) [IsSimpleModule R โ†ฅS] (le : S โ‰ค c) :
          c = isotypicComponent R M โ†ฅS
          theorem Submodule.map_le_isotypicComponent {R : Type u_2} {M : Type u} {N : Type u_3} [Ring R] [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] (S : Submodule R M) [IsSimpleModule R โ†ฅS] (f : M โ†’โ‚—[R] N) :
          map f S โ‰ค isotypicComponent R N โ†ฅS
          def Submodule.IsFullyInvariant {R : Type u_5} {M : Type u_6} [Semiring R] [AddCommMonoid M] [Module R M] (N : Submodule R M) :

          A submodule N an R-module M is fully invariant if N is mapped into itself by all R-linear endomorphisms of M.

          If M is semisimple, this is equivalent to N being a sum of isotypic components of M: see isFullyInvariant_iff_sSup_isotypicComponents.

          Instances For

            The fully invariant submodules of a module form a complete sublattice in the lattice of submodules.

            Instances For
              noncomputable def iSupIndep.ringEquiv {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] {ฮน : Type u_5} [DecidableEq ฮน] {N : ฮน โ†’ Submodule R M} (ind : iSupIndep N) (iSup_top : โจ† (i : ฮน), N i = โŠค) (invar : โˆ€ (i : ฮน), (N i).IsFullyInvariant) :
              Module.End R M โ‰ƒ+* ((i : ฮน) โ†’ Module.End R โ†ฅ(N i))

              If an R-module M is the direct sum of fully invariant submodules Nแตข, then End R M is isomorphic to ฮ แตข End R Nแตข as a ring.

              Instances For
                noncomputable def iSupIndep.algEquiv (Rโ‚€ : Type u_1) {R : Type u_2} {M : Type u} [CommSemiring Rโ‚€] [Ring R] [Algebra Rโ‚€ R] [AddCommGroup M] [Module R M] {ฮน : Type u_5} [DecidableEq ฮน] {N : ฮน โ†’ Submodule R M} (ind : iSupIndep N) (iSup_top : โจ† (i : ฮน), N i = โŠค) (invar : โˆ€ (i : ฮน), (N i).IsFullyInvariant) [Module Rโ‚€ M] [IsScalarTower Rโ‚€ R M] :
                Module.End R M โ‰ƒโ‚[Rโ‚€] (i : ฮน) โ†’ Module.End R โ†ฅ(N i)

                If an R-module M is the direct sum of fully invariant submodules Nแตข, then End R M is isomorphic to ฮ แตข End R Nแตข as an algebra.

                Instances For
                  def GaloisCoinsertion.setIsotypicComponents (R : Type u_2) (M : Type u) [Ring R] [AddCommGroup M] [Module R M] :
                  GaloisCoinsertion (fun (s : Set โ†‘(isotypicComponents R M)) => โจ† c โˆˆ s, โŸจโ†‘c, โ‹ฏโŸฉ) fun (m : โ†ฅ(fullyInvariantSubmodule R M)) => {c : โ†‘(isotypicComponents R M) | โ†‘c โ‰ค โ†‘m}

                  The Galois coinsertion from sets of isotypic components to fully invariant submodules.

                  Instances For
                    theorem le_isotypicComponent_iff {R : Type u_2} {M : Type u} {S : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup S] [Module R M] [Module R S] [IsSimpleModule R S] [IsSemisimpleModule R M] {m : Submodule R M} :
                    m โ‰ค isotypicComponent R M S โ†” IsIsotypicOfType R (โ†ฅm) S
                    theorem isFullyInvariant_iff_le_imp_isotypicComponent_le {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [IsSemisimpleModule R M] {m : Submodule R M} :
                    m.IsFullyInvariant โ†” โˆ€ S โ‰ค m, โˆ€ [IsSimpleModule R โ†ฅS], isotypicComponent R M โ†ฅS โ‰ค m
                    theorem eq_isotypicComponent_iff {R : Type u_2} {M : Type u} {S : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup S] [Module R M] [Module R S] [IsSimpleModule R S] [IsSemisimpleModule R M] {m : Submodule R M} (ne : m โ‰  โŠฅ) :
                    m = isotypicComponent R M S โ†” IsIsotypicOfType R (โ†ฅm) S โˆง m.IsFullyInvariant
                    theorem isIsotypic_iff_isFullyInvariant_imp_bot_or_top {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [IsSemisimpleModule R M] :
                    IsIsotypic R M โ†” โˆ€ (N : Submodule R M), N.IsFullyInvariant โ†’ N = โŠฅ โˆจ N = โŠค
                    theorem mem_isotypicComponents_iff {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [IsSemisimpleModule R M] {m : Submodule R M} :
                    m โˆˆ isotypicComponents R M โ†” IsIsotypic R โ†ฅm โˆง m.IsFullyInvariant โˆง m โ‰  โŠฅ

                    Sets of isotypic components in a semisimple module are in order-preserving 1-1 correspondence with fully invariant submodules. Consequently, the fully invariant submodules form a complete atomic Boolean algebra.

                    Instances For
                      @[simp]
                      theorem OrderIso.setIsotypicComponents_apply {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] [IsSemisimpleModule R M] (s : Set โ†‘(isotypicComponents R M)) :
                      setIsotypicComponents s = โจ† c โˆˆ s, โŸจโ†‘c, โ‹ฏโŸฉ
                      noncomputable def IsSemisimpleModule.endAlgEquiv (Rโ‚€ : Type u_1) (R : Type u_2) (M : Type u) [CommSemiring Rโ‚€] [Ring R] [Algebra Rโ‚€ R] [AddCommGroup M] [Module R M] [IsSemisimpleModule R M] [Module Rโ‚€ M] [IsScalarTower Rโ‚€ R M] [DecidableEq โ†‘(isotypicComponents R M)] :
                      Module.End R M โ‰ƒโ‚[Rโ‚€] (c : โ†‘(isotypicComponents R M)) โ†’ Module.End R โ†ฅโ†‘c

                      The endomorphism algebra of a semisimple module is the direct product of the endomorphism algebras of its isotypic components.

                      Instances For
                        noncomputable def IsSemisimpleModule.endRingEquiv (R : Type u_2) (M : Type u) [Ring R] [AddCommGroup M] [Module R M] [IsSemisimpleModule R M] [DecidableEq โ†‘(isotypicComponents R M)] :
                        Module.End R M โ‰ƒ+* ((c : โ†‘(isotypicComponents R M)) โ†’ Module.End R โ†ฅโ†‘c)

                        The endomorphism ring of a semisimple module is the direct product of the endomorphism rings of its isotypic components.

                        Instances For