Composing modules with a ring hom #
Main definitions #
Module.compHom: compose aModulewith aRingHom, with actionf s • m.RingHom.toModule: aRingHomdefines a module structure byr • x = f r * x.
Tags #
semimodule, module, vector space
@[reducible, inline]
abbrev Function.Surjective.moduleLeft {R : Type u_4} {S : Type u_5} {M : Type u_6} [Semiring R] [AddCommMonoid M] [Module R M] [Semiring S] [SMul S M] (f : R →+* S) (hf : Surjective ⇑f) (hsmul : ∀ (c : R) (x : M), f c • x = c • x) :
Module S M
Push forward the action of R on M along a compatible surjective map f : R →+* S.
See also Function.Surjective.mulActionLeft and Function.Surjective.distribMulActionLeft.
Instances For
def RingHom.smulOneHom {R : Type u_1} {S : Type u_2} [Semiring R] [NonAssocSemiring S] [Module R S] [IsScalarTower R S S] :
If the module action of R on S is compatible with multiplication on S, then
fun x ↦ x • 1 is a ring homomorphism from R to S.
This is the RingHom version of MonoidHom.smulOneHom.
When R is commutative, usually algebraMap should be preferred.
Instances For
@[simp]
theorem RingHom.smulOneHom_apply {R : Type u_1} {S : Type u_2} [Semiring R] [NonAssocSemiring S] [Module R S] [IsScalarTower R S S] (x : R) :
A homomorphism between semirings R and S can be equivalently specified by an R-module structure on S such that S/S/R is a scalar tower.