Direct sum of modules over commutative rings, indexed by a discrete type. #
This file provides constructors for finite direct sums of modules. It provides a construction of the direct sum using the universal property and proves its uniqueness.
Implementation notes #
All of this file assumes that
R
is a commutative ring,ι
is a discrete type,S
is a finite set inι
,M
is a family ofR
modules indexed overι
.
Equations
Create the direct sum given a family M
of R
modules indexed over ι
.
Equations
- direct_sum.lmk R ι M = dfinsupp.lmk
Inclusion of each component into the direct sum.
Equations
- direct_sum.lof R ι M = dfinsupp.lsingle
Scalar multiplication commutes with direct sums.
Scalar multiplication commutes with the inclusion of each component into the direct sum.
The linear map constructed using the universal property of the coproduct.
Equations
- direct_sum.to_module R ι N φ = ⇑(dfinsupp.lsum ℕ) φ
The map constructed using the universal property gives back the original maps when restricted to each component.
Every linear map from a direct sum agrees with the one obtained by applying the universal property to each of its components.
The inclusion of a subset of the direct summands into a larger subset of the direct summands, as a linear map.
Equations
- direct_sum.lset_to_set R S T H = direct_sum.to_module R ↥S (⨁ (i : ↥T), M ↑i) (λ (i : ↥S), direct_sum.lof R ↥T (λ (i : subtype T), M ↑i) ⟨↑i, _⟩)
The natural linear equivalence between ⨁ _ : ι, M
and M
when unique ι
.
Equations
- direct_sum.lid R M ι = {to_fun := (direct_sum.id M ι).to_fun, map_add' := _, map_smul' := _, inv_fun := (direct_sum.id M ι).inv_fun, left_inv := _, right_inv := _}
The projection map onto one component, as a linear map.
Equations
- direct_sum.component R ι M i = dfinsupp.lapply i
The direct_sum
formed by a collection of submodule
s of M
is said to be internal if the
canonical map (⨁ i, A i) →ₗ[R] M
is bijective.
Equations
- direct_sum.submodule_is_internal A = function.bijective ⇑(direct_sum.to_module R ι M (λ (i : ι), (A i).subtype))