Properties of the module α →₀ M #
Given an R-module M, the R-module structure on α →₀ M is defined in
Mathlib/Data/Finsupp/SMul.lean.
In this file we define LinearMap versions of various maps:
Finsupp.lsingle a : M →ₗ[R] ι →₀ M:Finsupp.single aas a linear map;Finsupp.lapply a : (ι →₀ M) →ₗ[R] M: the mapfun f ↦ f aas a linear map;Finsupp.lsubtypeDomain (s : Set α) : (α →₀ M) →ₗ[R] (s →₀ M): restriction to a subtype as a linear map;Finsupp.restrictDom:Finsupp.filteras a linear map toFinsupp.supported s;Finsupp.lmapDomain: a linear map version ofFinsupp.mapDomain;
Tags #
function with finite support, module, linear algebra
Given Finite α, linearEquivFunOnFinite R is the natural R-linear equivalence between
α →₀ β and α → β.
Equations
- Finsupp.linearEquivFunOnFinite R M α = { toFun := DFunLike.coe, map_add' := ⋯, map_smul' := ⋯, invFun := Finsupp.equivFunOnFinite.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
Interpret Finsupp.single a as a linear map.
Equations
- Finsupp.lsingle a = { toFun := (↑(Finsupp.singleAddHom a)).toFun, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Two R-linear maps from Finsupp X M which agree on each single x y agree everywhere.
Two R-linear maps from Finsupp X M which agree on each single x y agree everywhere.
We formulate this fact using equality of linear maps φ.comp (lsingle a) and ψ.comp (lsingle a)
so that the ext tactic can apply a type-specific extensionality lemma to prove equality of these
maps. E.g., if M = R, then it suffices to verify φ (single a 1) = ψ (single a 1).
Interpret fun f : α →₀ M ↦ f a as a linear map.
Equations
- Finsupp.lapply a = { toFun := (↑(Finsupp.applyAddHom a)).toFun, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Interpret Finsupp.subtypeDomain s as a linear map.
Equations
- Finsupp.lsubtypeDomain s = { toFun := Finsupp.subtypeDomain fun (x : α) => x ∈ s, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Interpret Finsupp.mapDomain as a linear map.
Equations
- Finsupp.lmapDomain M R f = { toFun := Finsupp.mapDomain f, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Finsupp.mapDomain as a LinearEquiv.
Equations
- Finsupp.mapDomain.linearEquiv M R f = { toLinearMap := Finsupp.lmapDomain M R f.toFun, invFun := Finsupp.mapDomain ⇑f.symm, left_inv := ⋯, right_inv := ⋯ }
Instances For
Given f : α → β and a proof hf that f is injective, lcomapDomain f hf is the linear map
sending l : β →₀ M to the finitely supported function from α to M given by composing
l with f.
This is the linear version of Finsupp.comapDomain.
Equations
- Finsupp.lcomapDomain f hf = { toFun := fun (l : β →₀ M) => Finsupp.comapDomain f l ⋯, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Finsupp.mapRange as a LinearMap.
Equations
- Finsupp.mapRange.linearMap f = { toFun := Finsupp.mapRange ⇑f ⋯, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Finsupp.mapRange as a LinearEquiv.
Equations
- Finsupp.mapRange.linearEquiv e = { toFun := Finsupp.mapRange ⇑e ⋯, map_add' := ⋯, map_smul' := ⋯, invFun := Finsupp.mapRange ⇑e.symm ⋯, left_inv := ⋯, right_inv := ⋯ }
Instances For
The linear equivalence between α × β →₀ M and α →₀ β →₀ M.
This is the LinearEquiv version of Finsupp.finsuppProdEquiv.
Equations
- Finsupp.finsuppProdLEquiv R = { toFun := Finsupp.finsuppProdEquiv.toFun, map_add' := ⋯, map_smul' := ⋯, invFun := Finsupp.finsuppProdEquiv.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
If Subsingleton R, then M ≃ₗ[R] ι →₀ R for any type ι.
Equations
- Module.subsingletonEquiv R M ι = { toFun := fun (x : M) => 0, map_add' := ⋯, map_smul' := ⋯, invFun := fun (x : ι →₀ R) => 0, left_inv := ⋯, right_inv := ⋯ }