Sums as a linear map #
Given an R
-module M
, the R
-module structure on α →₀ M
is defined in
Data.Finsupp.Basic
.
Main definitions #
Finsupp.lsum
:Finsupp.sum
orFinsupp.liftAddHom
as aLinearMap
;
Tags #
function with finite support, module, linear algebra
Lift a family of linear maps M →ₗ[R] N
indexed by x : α
to a linear map from α →₀ M
to
N
using Finsupp.sum
. This is an upgraded version of Finsupp.liftAddHom
.
See note [bundled maps over different rings] for why separate R
and S
semirings are used.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A slight rearrangement from lsum
gives us
the bijection underlying the free-forgetful adjunction for R-modules.
Equations
- Finsupp.lift M R X = (AddEquiv.arrowCongr (Equiv.refl X) (LinearMap.ringLmapEquivSelf R ℕ M).toAddEquiv.symm).trans (Finsupp.lsum ℕ).toAddEquiv
Instances For
Given compatible S
and R
-module structures on M
and a type X
, the set of functions
X → M
is S
-linearly equivalent to the R
-linear maps from the free R
-module
on X
to M
.
Equations
- Finsupp.llift M R S X = { toFun := (Finsupp.lift M R X).toFun, map_add' := ⋯, map_smul' := ⋯, invFun := (Finsupp.lift M R X).invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
An equivalence of domains induces a linear equivalence of finitely supported functions.
This is Finsupp.domCongr
as a LinearEquiv
.
See also LinearMap.funCongrLeft
for the case of arbitrary functions.
Equations
- Finsupp.domLCongr e = (Finsupp.domCongr e).toLinearEquiv ⋯
Instances For
An equivalence of domain and a linear equivalence of codomain induce a linear equivalence of the corresponding finitely supported functions.
Equations
- Finsupp.lcongr e₁ e₂ = Finsupp.domLCongr e₁ ≪≫ₗ Finsupp.mapRange.linearEquiv e₂
Instances For
A surjective linear map to finitely supported functions has a splitting.
Equations
- f.splittingOfFinsuppSurjective s = (Finsupp.lift M R α) fun (x : α) => ⋯.choose
Instances For
If M
and N
are submodules of an R
-algebra S
, m : ι → M
is a family of elements, then
there is an R
-linear map from ι →₀ N
to S
which maps { n_i }
to the sum of m_i * n_i
.
This is used in the definition of linearly disjointness.
Equations
- Submodule.mulLeftMap N m = (Finsupp.lsum R) fun (i : ι) => ↑(m i) • N.subtype
Instances For
If M
and N
are submodules of an R
-algebra S
, n : ι → N
is a family of elements, then
there is an R
-linear map from ι →₀ M
to S
which maps { m_i }
to the sum of m_i * n_i
.
This is used in the definition of linearly disjointness.
Equations
- M.mulRightMap n = (Finsupp.lsum R) fun (i : ι) => MulOpposite.op ↑(n i) • M.subtype