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
semimodules indexed overι
.
Equations
Create the direct sum given a family M
of R
semimodules indexed over ι
.
Equations
- direct_sum.lmk R ι M = dfinsupp.lmk M R
Inclusion of each component into the direct sum.
Equations
- direct_sum.lof R ι M = dfinsupp.lsingle M R
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 φ = {to_fun := direct_sum.to_group (λ (i : ι), ⇑(φ i)) _, map_add' := _, map_smul' := _}
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 (direct_sum ↥T (λ (i : ↥T), M ↑i)) (λ (i : ↥S), direct_sum.lof R ↥T (M ∘ subtype.val) ⟨i.val, _⟩)
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 = {to_fun := λ (f : direct_sum ι (λ (i : ι), M i)), ⇑f i, map_add' := _, map_smul' := _}