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.

Equations
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.

    Equations
    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) :
      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 mN, ∀ [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 mN, ∀ [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 nS)
      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 nS)
      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), Sm, IsSimpleModule R S Nonempty (m ≃ₗ[R] Fin nS)
      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.

      Equations
      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.

        Equations
        Instances For
          theorem Submodule.le_isotypicComponent {R : Type u_2} {M : Type u} [Ring R] [AddCommGroup M] [Module R M] (m : Submodule R M) :
          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) :
          < 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 = ) :
          ms, Sm, 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 = ) :
          Ss, 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) :
          ms, Sm, 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) :
          Ss, Nonempty (N ≃ₗ[R] S)
          theorem IsIsotypicOfType.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] :
          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] :
          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) :
          theorem LinearMap.le_comap_isotypicComponent {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] [IsSimpleModule R S] (f : M →ₗ[R] N) :
          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.

          Equations
          Instances For

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

            Equations
            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.

              Equations
              • One or more equations did not get rendered due to their size.
              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.

                Equations
                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)) => cs, c, ) fun (m : (fullyInvariantSubmodule R M)) => {c : (isotypicComponents R M) | c m}

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

                  Equations
                  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} :
                    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 ) :

                    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.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    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 = cs, 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.

                      Equations
                      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.

                        Equations
                        Instances For