Endomorphisms of a module #
In this file we define the type of linear endomorphisms of a module over a ring (Module.End).
We set up the basic theory,
including the action of Module.End on the module we are considering endomorphisms of.
Main results #
Module.End.semiringandModule.End.ring: the (semi)ring of endomorphisms formed by taking the additive structure above with composition as multiplication.
Linear endomorphisms of a module, with associated ring structure
Module.End.semiring and algebra structure Module.End.algebra.
Equations
- Module.End R M = (M →ₗ[R] M)
Instances For
Monoid structure of endomorphisms #
Equations
- LinearMap.instOneEnd = { one := LinearMap.id }
Equations
- LinearMap.instMulEnd = { mul := LinearMap.comp }
Equations
- ⋯ = ⋯
Equations
- Module.End.semiring = let __src := AddMonoidWithOne.unary; let __src_1 := Module.End.monoid; let __src_2 := LinearMap.addCommMonoid; Semiring.mk ⋯ ⋯ ⋯ ⋯ Monoid.npow ⋯ ⋯
See also Module.End.natCast_def.
See also Module.End.intCast_def.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Action by a module endomorphism. #
The tautological action by Module.End R M (aka M →ₗ[R] M) on M.
This generalizes Function.End.applyMulAction.
LinearMap.applyModule is faithful.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Actions as module endomorphisms #
Each element of the monoid defines a linear map.
This is a stronger version of DistribMulAction.toAddMonoidHom.
Equations
- DistribMulAction.toLinearMap R M s = { toFun := HSMul.hSMul s, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Each element of the monoid defines a module endomorphism.
This is a stronger version of DistribMulAction.toAddMonoidEnd.
Equations
- DistribMulAction.toModuleEnd R M = { toFun := DistribMulAction.toLinearMap R M, map_one' := ⋯, map_mul' := ⋯ }
Instances For
Each element of the semiring defines a module endomorphism.
This is a stronger version of DistribMulAction.toModuleEnd.
Equations
- Module.toModuleEnd R M = let __src := DistribMulAction.toModuleEnd R M; { toFun := DistribMulAction.toLinearMap R M, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The canonical (semi)ring isomorphism from Rᵐᵒᵖ to Module.End R R induced by the right
multiplication.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical (semi)ring isomorphism from R to Module.End Rᵐᵒᵖ R induced by the left
multiplication.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When f is an R-linear map taking values in S, then fun b ↦ f b • x is an R-linear
map.
Instances For
Applying a linear map at v : M, seen as S-linear map from M →ₗ[R] M₂ to M₂.
See LinearMap.applyₗ for a version where S = R.
Equations
- LinearMap.applyₗ' S = { toFun := fun (v : M) => { toFun := fun (f : M →ₗ[R] M₂) => f v, map_add' := ⋯, map_smul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Composition by f : M₂ → M₃ is a linear map from the space of linear maps M → M₂
to the space of linear maps M → M₃.
Equations
- f.compRight = { toFun := f.comp, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Applying a linear map at v : M, seen as a linear map from M →ₗ[R] M₂ to M₂.
See also LinearMap.applyₗ' for a version that works with two different semirings.
This is the LinearMap version of toAddMonoidHom.eval.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The family of linear maps M₂ → M parameterised by f ∈ M₂ → R, x ∈ M, is linear in f, x.