Module structure and endomorphisms #
In this file, we define Module.toAddMonoidEnd, which is (•) as a monoid homomorphism.
We use this to prove some results on scalar multiplication by integers.
def Module.toAddMonoidEnd (R : Type u_1) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Module R M] :
(•) as an AddMonoidHom.
This is a stronger version of DistribMulAction.toAddMonoidEnd
Equations
- Module.toAddMonoidEnd R M = { toMonoidHom := DistribMulAction.toAddMonoidEnd R M, map_zero' := ⋯, map_add' := ⋯ }
Instances For
@[simp]
theorem Module.toAddMonoidEnd_apply_apply (R : Type u_1) (M : Type u_3) [Semiring R] [AddCommMonoid M] [Module R M] (x : R) (x✝ : M) :
A convenience alias for Module.toAddMonoidEnd as an AddMonoidHom, usually to allow the
use of AddMonoidHom.flip.
Equations
- smulAddHom R M = (Module.toAddMonoidEnd R M).toAddMonoidHom
Instances For
@[simp]
theorem smulAddHom_apply {R : Type u_1} {M : Type u_3} [Semiring R] [AddCommMonoid M] [Module R M] (r : R) (x : M) :
theorem IsAddUnit.smul_left {S : Type u_2} {M : Type u_3} [AddCommMonoid M] {x : M} [DistribSMul S M] (hx : IsAddUnit x) (s : S) :
theorem IsAddUnit.smul_right {R : Type u_1} {M : Type u_3} [Semiring R] [AddCommMonoid M] [Module R M] {r : R} (x : M) (hr : IsAddUnit r) :