A complete family of orthogonal idempotents decomposes every module #
Let R be a semiring and let e : ι → R be a complete orthogonal family of idempotents:
eᵢ eⱼ = 0 for i ≠ j and ∑ᵢ eᵢ = 1. Then every left R-module M splits as an internal
direct sum of the S-submodules eᵢ • M,
M = ⨁ᵢ eᵢ M,
the component of x in position i being eᵢ • x. This file proves that
(TauCeti.isInternal_smul_top) and records the dimension count dim M = ∑ᵢ dim (eᵢ M) that
follows over a division ring.
Mathlib has the family (CompleteOrthogonalIdempotents) and the converse direction — a
decomposition of R itself into left ideals produces such a family
(DirectSum.completeOrthogonalIdempotents_idempotent) — but not the decomposition of an arbitrary
module that the family induces.
The pieces #
The piece eᵢ M is Mathlib's pointwise action e i • (⊤ : Submodule S M) (scoped in Pointwise),
so no new definition is introduced for it and Mathlib's pointwise API —
Submodule.pointwise_smul_def, Submodule.mem_smul_pointwise_iff_exists,
Submodule.smul_mem_pointwise_smul — applies to the statements below as it stands.
The two scalar rings #
The pieces eᵢ • M are not R-submodules: R is noncommutative in the intended applications,
and r • (eᵢ • x) need not lie in eᵢ • M. They are submodules over any second ring S whose
action on M commutes with that of R, that is, under SMulCommClass R S M, which is exactly
what makes multiplication by e an S-linear map (DistribSMul.toLinearMap) and is exactly the
hypothesis of Mathlib's pointwise action on Submodule S M; carrying that ambient S is what
makes the dimension count below available. Taking S = ℕ recovers the decomposition as additive
submonoids, and an S-algebra structure on R together with IsScalarTower S R M supplies the
hypothesis in the intended applications.
Main definitions #
TauCeti.smulTopMap S e f: the restriction of anR-linear mapf : M →ₗ[R] Ntoe • M →ₗ[S] e • N.
Main results #
IsIdempotentElem.mem_smul_top_iff_smul_eq_self: for an idempotente, membership ine • Mis the fixed-point conditione • x = x. The scalareneeds only a distributive monoid action onM.TauCeti.isInternal_smul_top: the decompositionM = ⨁ᵢ eᵢ M, with the component ofxatibeingeᵢ • x(TauCeti.coe_ofBijective_coeLinearMap_symm_apply_smul_top).TauCeti.smul_coeLinearMap_smul_top: multiplying byeᵢreads off thei-th component of a sum. This is what makes the sum direct.TauCeti.finrank_eq_sum_finrank_smul_top: for a module finite-dimensional over a division ringS, the dimensions of the pieces add up to the dimension of the module.IsIdempotentElem.instModuleCornerSmulTop: for a single idempotente, the piecee • Mis a module over the corner ringeAe(IsIdempotentElem.Corner), which acts by restricting the action ofA, as recorded byIsIdempotentElem.Corner.coe_smul. This is the module structure the corner functorM ↦ eMof Morita theory is built on.
References #
The decomposition of a module along a complete orthogonal family of idempotents is the classical Peirce decomposition; see T. Y. Lam, A First Course in Noncommutative Rings, §21, or Assem--Simson--Skowroński, Elements of the Representation Theory of Associative Algebras I, Ch. I.4.
Membership in e • M for an idempotent e is a fixed-point condition. This is Mathlib's
LinearMap.IsIdempotentElem.mem_range_iff for the idempotent endomorphism x ↦ e • x, whose range
is the piece e • M.
Multiplication by an idempotent e fixes e • M pointwise.
The pieces are natural in the module: an R-linear map carries e • M into e • N.
The restriction of an R-linear map M → N to the pieces cut out by e, an S-linear map
e • M → e • N. This is TauCeti.smul_top_le_comap_smul_top promoted to the map it describes.
Equations
- TauCeti.smulTopMap S e f = (↑S f).restrict ⋯
Instances For
The restriction to the pieces is functorial: the identity restricts to the identity.
The restriction to the pieces is functorial: a composite restricts to the composite of the restrictions.
An orthogonal idempotent annihilates the piece cut out by any of the others.
The pieces cut out by an orthogonal family are independent: the piece at i meets the
supremum of the others only in 0, because eᵢ fixes the former and kills the latter.
A decomposition of the unit decomposes every element: if ∑ᵢ eᵢ = 1 then x = ∑ᵢ eᵢ • x.
Neither idempotency nor orthogonality is needed.
The pieces cut out by a decomposition of the unit span the module.
Multiplying by eⱼ reads off the j-th component of a sum: in ∑ᵢ zᵢ with zᵢ ∈ eᵢ M,
the idempotent eⱼ fixes the term at j and annihilates all the others. This is what makes the
sum direct.
A complete orthogonal family of idempotents decomposes every module: M = ⨁ᵢ eᵢ M.
The S-submodule at i is eᵢ • M, and the component of x there is eᵢ • x.
The component of x at i is eᵢ • x: this is the inverse of the decomposition, read
off one index at a time. The isomorphism ⨁ᵢ eᵢ M ≃ₗ[S] M is the canonical
LinearEquiv.ofBijective (DirectSum.coeLinearMap _) of an internal direct sum, so Mathlib's
DirectSum.IsInternal.ofBijective_coeLinearMap_same and friends apply to it as well.
The dimension count: for a module finite-dimensional over a division ring S, the
dimensions of the pieces add up to the dimension of the module.
The pieces as modules over the corner ring #
The corner ring eAe acts on the piece e • M by restricting the action of A.
The piece e • M of an A-module is a module over the corner ring eAe. Its unit e
acts trivially because e fixes e • M pointwise.
Equations
- he.instModuleCornerSmulTop = { toSMul := he.instSMulCornerSmulTop, mul_smul := ⋯, one_smul := ⋯, smul_zero := ⋯, smul_add := ⋯, add_smul := ⋯, zero_smul := ⋯ }
On the piece e • M, the scalar r • e of the corner ring acts as r does on M.