Documentation

TauCeti.RingTheory.Semisimple.Multiplicity

The multiplicity of a simple module, as the dimension of a hom space #

Let A be an algebra over a field k and let S be a simple A-module, finite-dimensional over k. If a module M is written as a finite direct sum of simple modules, the number of summands isomorphic to S is the multiplicity of S in M. Written that way the multiplicity refers to a chosen decomposition. Over an algebraically closed field this file identifies it with the manifestly choice-free number

Module.finrank k (S →ₗ[A] M),

so that the multiplicity is an invariant of M and needs no decomposition to be defined.

The proof is Schur's lemma plus additivity. A hom space out of S into a finite product splits as the product of the hom spaces into the factors, and each factor contributes 1 or 0 according as it is or is not isomorphic to S. Those two values are the dimension forms of Schur's lemma, TauCeti.finrank_linearMap_eq_one_of_nonempty_linearEquiv and TauCeti.finrank_linearMap_eq_zero_of_isEmpty_linearEquiv, proved in TauCeti/RingTheory/Semisimple/Schur.lean alongside the transport of a hom space along an isomorphism of its target, TauCeti.homCongrRight.

Over an arbitrary field, an isomorphic factor instead contributes finrank k (Module.End A S). The corresponding scaled multiplicity formula is enough to recover the number of factors, since this endomorphism algebra has positive dimension. Constituent detection and hom-space reconstruction therefore need no algebraic closure. Multiplicity invariance is proved over arbitrary rings by identifying the factor count with the Jordan-Hölder multiplicity.

The hom-space dimension results are stated for a k-algebra A and A-modules that are k-modules compatibly. For A = k[G], the hom space is the space of intertwiners. The reconstruction result from simple-module classes needs only a semisimple ring, while reconstruction from hom-space dimensions returns to the finite-dimensional k-algebra setting.

Main results #

The isotypic component #

Mathlib's isotypicComponent A M S is the sum of the submodules of M isomorphic to S, and IsIsotypicOfType.linearEquiv_fun writes it as a finite power of S once S is simple and M is finite-dimensional. What the multiplicity theorem adds is the value of the exponent: every A-linear map out of S lands in the isotypic component (LinearMap.apply_mem_isotypicComponent), so TauCeti.linearMapIsotypicComponentEquiv identifies their hom spaces out of S, and the count above identifies the exponent with finrank k (S →ₗ[A] M). This is the decomposition-free description of the component that a multiplicity computation needs.

Implementation notes #

The index set of a decomposition is counted with Nat.card of a subtype rather than with a Finset.filter, so that no DecidablePred instance enters the statements; the proofs introduce classical decidability and a Fintype structure locally.

The semisimple-ring reconstruction theorem counts factors by simpleModuleClass; the hom-space reconstruction theorem converts those class fibres to the Nonempty (S ≃ₗ[A] N i) convention of the multiplicity theorem using simpleModuleClass_eq_mk_iff.

Over an arbitrary ring, where simple modules need not embed in the ring, the factors of a finitely generated semisimple module are instead taken to be quotients R ⧸ m by maximal left ideals, and are matched up to isomorphism directly; maps out of such a module into a simple module are counted with Nat.card, which needs no base field.

The dimension formulas assume simplicity of S and finite dimensionality over k. The multiplicity theorem takes the decomposition of M as data; existence of a decomposition is the separate semisimplicity input. The ring-general factor-count statements need neither a base field nor simplicity of the module whose occurrences are counted.

References #

See C. W. Curtis and I. Reiner, Representation Theory of Finite Groups and Associative Algebras, §25, or J.-P. Serre, Linear Representations of Finite Groups, §2.

The multiplicity of a simple module in a finite direct sum #

theorem TauCeti.finrank_linearMap_pi_eq_natCard_mul_finrank_end {k : Type u_1} {A : Type u_2} {S : Type u_3} [Field k] [Ring A] [Algebra k A] [AddCommGroup S] [Module k S] [Module A S] [IsScalarTower k A S] [IsSimpleModule A S] [FiniteDimensional k S] {ι : Type u_4} [Finite ι] {N : ι → Type u_5} [(i : ι) → AddCommGroup (N i)] [(i : ι) → Module k (N i)] [(i : ι) → Module A (N i)] [∀ (i : ι), IsScalarTower k A (N i)] [∀ (i : ι), IsSimpleModule A (N i)] :
Module.finrank k (S →ₗ[A] (i : ι) → N i) = Nat.card { i : ι // Nonempty (S ≃ₗ[A] N i) } * Module.finrank k (Module.End A S)

The multiplicity formula over an arbitrary field. The dimension of the space of maps from a simple module S into a finite product of simple modules is the number of factors isomorphic to S, multiplied by the dimension of the division algebra End_A(S).

theorem LinearEquiv.finrank_linearMap_eq_natCard_mul_finrank_end {k : Type u_1} {A : Type u_2} {S : Type u_3} [Field k] [Ring A] [Algebra k A] [AddCommGroup S] [Module k S] [Module A S] [IsScalarTower k A S] [IsSimpleModule A S] [FiniteDimensional k S] {ι : Type u_4} [Finite ι] {N : ι → Type u_5} [(i : ι) → AddCommGroup (N i)] [(i : ι) → Module k (N i)] [(i : ι) → Module A (N i)] [∀ (i : ι), IsScalarTower k A (N i)] [∀ (i : ι), IsSimpleModule A (N i)] {M : Type u_6} [AddCommGroup M] [Module k M] [Module A M] [IsScalarTower k A M] (e : M ≃ₗ[A] (i : ι) → N i) :

The multiplicity formula over an arbitrary field, for a module given with a finite simple decomposition. Each copy of S contributes the dimension of End_A(S).

theorem TauCeti.finrank_linearMap_pi_eq_natCard {k : Type u_1} {A : Type u_2} {S : Type u_3} [Field k] [IsAlgClosed k] [Ring A] [Algebra k A] [AddCommGroup S] [Module k S] [Module A S] [IsScalarTower k A S] [IsSimpleModule A S] [FiniteDimensional k S] {ι : Type u_4} [Finite ι] {N : ι → Type u_5} [(i : ι) → AddCommGroup (N i)] [(i : ι) → Module k (N i)] [(i : ι) → Module A (N i)] [∀ (i : ι), IsScalarTower k A (N i)] [∀ (i : ι), IsSimpleModule A (N i)] :
Module.finrank k (S →ₗ[A] (i : ι) → N i) = Nat.card { i : ι // Nonempty (S ≃ₗ[A] N i) }

The multiplicity theorem for a product of simple modules. The dimension of the space of A-linear maps from a simple module S into a finite product of simple modules counts the factors isomorphic to S.

theorem TauCeti.finrank_linearMap_eq_natCard_of_linearEquiv_pi {k : Type u_1} {A : Type u_2} {S : Type u_3} [Field k] [IsAlgClosed k] [Ring A] [Algebra k A] [AddCommGroup S] [Module k S] [Module A S] [IsScalarTower k A S] [IsSimpleModule A S] [FiniteDimensional k S] {ι : Type u_4} [Finite ι] {N : ι → Type u_5} [(i : ι) → AddCommGroup (N i)] [(i : ι) → Module k (N i)] [(i : ι) → Module A (N i)] [∀ (i : ι), IsScalarTower k A (N i)] [∀ (i : ι), IsSimpleModule A (N i)] {M : Type u_6} [AddCommGroup M] [Module k M] [Module A M] [IsScalarTower k A M] (e : M ≃ₗ[A] (i : ι) → N i) :

The multiplicity theorem. If M decomposes as a finite direct sum of simple modules N i, then the dimension of the space of A-linear maps from a simple module S into M is the number of factors isomorphic to S.

Only the right-hand side mentions the decomposition, so this is the statement that the multiplicity of S in M is an invariant of M; see TauCeti.natCard_eq_natCard_of_linearEquiv_pi.

theorem TauCeti.finiteDimensional_linearMap_of_linearEquiv_pi {k : Type u_1} {A : Type u_2} {S : Type u_3} [Field k] [Ring A] [Algebra k A] [AddCommGroup S] [Module k S] [Module A S] [IsScalarTower k A S] [IsSimpleModule A S] [FiniteDimensional k S] {ι : Type u_4} [Finite ι] {N : ι → Type u_5} [(i : ι) → AddCommGroup (N i)] [(i : ι) → Module k (N i)] [(i : ι) → Module A (N i)] [∀ (i : ι), IsScalarTower k A (N i)] [∀ (i : ι), IsSimpleModule A (N i)] {M : Type u_6} [AddCommGroup M] [Module k M] [Module A M] [IsScalarTower k A M] (e : M ≃ₗ[A] (i : ι) → N i) :

A module with a finite decomposition into simple modules has a finite-dimensional space of maps from a finite-dimensional simple module into it.

theorem TauCeti.finrank_linearMap_pos_iff_exists_nonempty_linearEquiv {k : Type u_1} {A : Type u_2} {S : Type u_3} [Field k] [Ring A] [Algebra k A] [AddCommGroup S] [Module k S] [Module A S] [IsScalarTower k A S] [IsSimpleModule A S] [FiniteDimensional k S] {ι : Type u_4} [Finite ι] {N : ι → Type u_5} [(i : ι) → AddCommGroup (N i)] [(i : ι) → Module k (N i)] [(i : ι) → Module A (N i)] [∀ (i : ι), IsScalarTower k A (N i)] [∀ (i : ι), IsSimpleModule A (N i)] {M : Type u_6} [AddCommGroup M] [Module k M] [Module A M] [IsScalarTower k A M] (e : M ≃ₗ[A] (i : ι) → N i) :
0 < Module.finrank k (S →ₗ[A] M) ↔ ∃ (i : ι), Nonempty (S ≃ₗ[A] N i)

A hom space detects a constituent. There is a nonzero A-linear map from the simple module S into M exactly when S occurs among the simple factors of M.

Multiplicity invariance over arbitrary rings #

theorem TauCeti.jordanHolderMultiplicity_pi_eq_natCard {A : Type u_1} {S : Type u_2} [Ring A] [AddCommGroup S] [Module A S] {ι : Type u_3} [Finite ι] {N : ι → Type u_4} [(i : ι) → AddCommGroup (N i)] [(i : ι) → Module A (N i)] [∀ (i : ι), IsSimpleModule A (N i)] :
jordanHolderMultiplicity A ((i : ι) → N i) S = Nat.card { i : ι // Nonempty (S ≃ₗ[A] N i) }

The Jordan-Hölder multiplicity in a finite product of simple modules counts the factors isomorphic to the given module.

theorem TauCeti.natCard_eq_natCard_of_linearEquiv_pi {A : Type u_1} {S : Type u_2} [Ring A] [AddCommGroup S] [Module A S] {ι : Type u_3} [Finite ι] {N : ι → Type u_4} [(i : ι) → AddCommGroup (N i)] [(i : ι) → Module A (N i)] [∀ (i : ι), IsSimpleModule A (N i)] {κ : Type u_5} [Finite κ] {P : κ → Type u_6} [(j : κ) → AddCommGroup (P j)] [(j : κ) → Module A (P j)] [∀ (j : κ), IsSimpleModule A (P j)] (e : ((i : ι) → N i) ≃ₗ[A] (j : κ) → P j) :
Nat.card { i : ι // Nonempty (S ≃ₗ[A] N i) } = Nat.card { j : κ // Nonempty (S ≃ₗ[A] P j) }

Equivalent finite products of simple modules contain equally many copies of every module. This is Jordan-Hölder invariance over an arbitrary ring, without a choice of base field.

Reconstructing a finite sum from its multiplicities #

theorem TauCeti.nonempty_linearEquiv_pi_of_natCard_eq {R : Type u_1} [Ring R] [IsSemisimpleRing R] {ι : Type u_2} {κ : Type u_3} [Finite ι] [Finite κ] {N : ι → Type u_4} [(i : ι) → AddCommGroup (N i)] [(i : ι) → Module R (N i)] [∀ (i : ι), IsSimpleModule R (N i)] {P : κ → Type u_5} [(j : κ) → AddCommGroup (P j)] [(j : κ) → Module R (P j)] [∀ (j : κ), IsSimpleModule R (P j)] (h : ∀ (c : SimpleSubmoduleClasses R R), Nat.card { i : ι // simpleModuleClass R (N i) = c } = Nat.card { j : κ // simpleModuleClass R (P j) = c }) :
Nonempty (((i : ι) → N i) ≃ₗ[R] (j : κ) → P j)

Finite sums of simple modules are determined by their multiplicities. If two finite families contain equally many modules in every simple-module isomorphism class, their products are linearly equivalent.

Semisimple modules over an arbitrary ring #

theorem TauCeti.IsSemisimpleModule.exists_linearEquiv_pi_quotient {R : Type u} [Ring R] (M : Type v) [AddCommGroup M] [Module R M] [IsSemisimpleModule R M] [Module.Finite R M] :
∃ (n : ℕ) (m : Fin n → Ideal R), (∀ (i : Fin n), (m i).IsMaximal) ∧ Nonempty (M ≃ₗ[R] (i : Fin n) → R ⧸ m i)

A finitely generated semisimple module is a finite product of quotients of the ring by maximal left ideals. This is IsSemisimpleModule.exists_linearEquiv_fin_dfinsupp with each simple summand replaced by an isomorphic cyclic module, so that all the factors live in the universe of R.

theorem TauCeti.natCard_linearMap_pi_eq_pow {R : Type u} [Ring R] {ι : Type u_1} [Finite ι] {N : ι → Type u_2} [(i : ι) → AddCommGroup (N i)] [(i : ι) → Module R (N i)] [∀ (i : ι), IsSimpleModule R (N i)] (S : Type w) [AddCommGroup S] [Module R S] [IsSimpleModule R S] :
Nat.card (((i : ι) → N i) →ₗ[R] S) = Nat.card (Module.End R S) ^ Nat.card { i : ι // Nonempty (S ≃ₗ[R] N i) }

Maps from a finite product of simple modules into a simple module S. Their number is the number of endomorphisms of S, raised to the number of factors isomorphic to S: by Schur's lemma a factor isomorphic to S contributes a copy of End_R(S), and any other factor contributes only the zero map. No base field is involved, and the formula holds even when End_R(S) is infinite, both sides then being 0 or 1 together.

Maps from a semisimple module into a simple module count its multiplicity. For a finitely generated semisimple module M and a simple module S, #Hom_R(M, S) = #End_R(S) ^ [M : S], where [M : S] is the Jordan-Hölder multiplicity. When End_R(S) is finite with at least two elements, the number of maps therefore determines the multiplicity.

theorem TauCeti.natCard_linearMap_pi_eq_prod_pow {R : Type u} [Ring R] {ι : Type u_1} [Fintype ι] {N : ι → Type u_2} [(i : ι) → AddCommGroup (N i)] [(i : ι) → Module R (N i)] [∀ (i : ι), IsSimpleModule R (N i)] (M : Type v) [AddCommGroup M] [Module R M] [IsSemisimpleModule R M] [Module.Finite R M] :
Nat.card (M →ₗ[R] (i : ι) → N i) = ∏ i : ι, Nat.card (Module.End R (N i)) ^ jordanHolderMultiplicity R M (N i)

Maps from a semisimple module into a finite product of simple modules. For a finitely generated semisimple module M, #Hom_R(M, ∏ i, N i) = ∏ i, #End_R(N i) ^ [M : N i]: maps into a product are families of maps into the factors, counted by TauCeti.natCard_linearMap_eq_pow_jordanHolderMultiplicity.

Semisimple modules are determined by their Jordan-Hölder multiplicities, over an arbitrary ring. Two finitely generated semisimple modules which contain every simple module equally often are isomorphic. It suffices to test the simple modules in the universe of R, since every simple module is isomorphic to a quotient of R.

Over a semisimple ring this is TauCeti.nonempty_linearEquiv_pi_of_natCard_eq, where the simple modules are indexed by the simple left ideals of R; in general a simple module need not embed in R, and the factors are matched by isomorphism directly.

Finite semisimple modules are determined by the numbers of maps between them, over an arbitrary ring. Two finite semisimple modules M and N with #Hom(M, N) · #Hom(N, M) = #End(M) · #End(N) are isomorphic.

Writing a_S and b_S for the multiplicities of a simple module S in M and N, and q_S = #End(S) ≥ 2, the four numbers of maps are ∏ q_S ^ (a_S b_S), ∏ q_S ^ (b_S a_S), ∏ q_S ^ (a_S ^ 2) and ∏ q_S ^ (b_S ^ 2), so the hypothesis says ∏ q_S ^ ((a_S - b_S) ^ 2) = 1. This form of the comparison applies when only maps between M and N themselves can be counted, for instance when M and N are reductions of lattices whose hom modules are known.

Reconstructing finite modules from hom-space dimensions #

theorem TauCeti.nonempty_linearEquiv_of_finrank_linearMap_eq {k : Type u_1} {A : Type u_2} {M : Type u_3} {P : Type u_4} [Field k] [Ring A] [Algebra k A] [FiniteDimensional k A] [IsSemisimpleRing A] [AddCommGroup M] [Module k M] [Module A M] [IsScalarTower k A M] [Module.Finite A M] [AddCommGroup P] [Module k P] [Module A P] [IsScalarTower k A P] [Module.Finite A P] (h : ∀ (S : Submodule A A) [IsSimpleModule A ↥S], Module.finrank k (↥S →ₗ[A] M) = Module.finrank k (↥S →ₗ[A] P)) :

Finite modules over a semisimple algebra are determined by their simple multiplicities. If every simple left ideal has hom spaces of the same dimension into M and P, then M and P are linearly equivalent.

The isotypic case #

theorem TauCeti.finrank_linearMap_eq_natCard_of_linearEquiv_pi_const {k : Type u_1} {A : Type u_2} {S : Type u_3} [Field k] [IsAlgClosed k] [Ring A] [Algebra k A] [AddCommGroup S] [Module k S] [Module A S] [IsScalarTower k A S] [IsSimpleModule A S] [FiniteDimensional k S] {ι : Type u_4} [Finite ι] {M : Type u_5} [AddCommGroup M] [Module k M] [Module A M] [IsScalarTower k A M] (e : M ≃ₗ[A] ι → S) :

The multiplicity of S in a power of S. If M is a finite power of the simple module S, the dimension of the space of A-linear maps S → M is the number of copies.

This is the form Clifford theory uses: an isotypic component of a restriction is a power of a single constituent, and its multiplicity is read off as a dimension.

The isotypic component #

@[simp]
theorem TauCeti.finrank_linearMap_isotypicComponent {k : Type u_1} {A : Type u_2} {M : Type u_3} {S : Type u_4} [Field k] [Ring A] [Algebra k A] [AddCommGroup M] [Module k M] [Module A M] [IsScalarTower k A M] [AddCommGroup S] [Module A S] [IsSimpleModule A S] :

The multiplicity of S in M is its multiplicity in the S-isotypic component, every map out of S landing there.

theorem TauCeti.nonempty_linearEquiv_isotypicComponent {k : Type u_1} {A : Type u_2} {M : Type u_3} {S : Type u_4} [Field k] [Ring A] [Algebra k A] [AddCommGroup M] [Module k M] [Module A M] [IsScalarTower k A M] [AddCommGroup S] [Module k S] [Module A S] [IsScalarTower k A S] [IsSimpleModule A S] [IsAlgClosed k] [FiniteDimensional k S] [FiniteDimensional k M] :

The isotypic component is the power of its type with exponent the multiplicity. Mathlib's IsIsotypicOfType.linearEquiv_fun writes the component as a finite power of S; what is proved here is that the exponent is the multiplicity finrank k (S →ₗ[A] M), which is the form that identifies it without reference to the decomposition.

theorem TauCeti.finrank_isotypicComponent {k : Type u_1} {A : Type u_2} {M : Type u_3} {S : Type u_4} [Field k] [Ring A] [Algebra k A] [AddCommGroup M] [Module k M] [Module A M] [IsScalarTower k A M] [AddCommGroup S] [Module k S] [Module A S] [IsScalarTower k A S] [IsSimpleModule A S] [IsAlgClosed k] [FiniteDimensional k S] [FiniteDimensional k M] :

The dimension of an isotypic component is the multiplicity times the dimension of its type. This is the counted form of the isotypic decomposition: the S-isotypic component of M is S^{⊕ m} with m the multiplicity finrank k (S →ₗ[A] M).

Positivity for an arbitrary nonzero submodule #

theorem TauCeti.finrank_linearMap_pos_of_ne_bot {k : Type u_1} {A : Type u_2} {M : Type u_3} [Field k] [Ring A] [Algebra k A] [AddCommGroup M] [Module k M] [Module A M] [IsScalarTower k A M] [FiniteDimensional k M] {S : Submodule A M} (hS : S ≠ ⊥) :
0 < Module.finrank k (↥S →ₗ[A] M)

A nonzero submodule has a positive-dimensional hom space. The inclusion of a nonzero A-submodule S of M is a nonzero element of S →ₗ[A] M, and that hom space is finite-dimensional over k because S and M are. For a simple S over a splitting field this is the statement that a constituent occurs with positive multiplicity.

A is a ring rather than a semiring because the finite-dimensionality of the hom space is LinearMap.finiteDimensional', which needs one; over a semiring ↥S carries no AddCommGroup instance and Module.Finite.linearMap does not apply.