Restriction of scalars for submodules #
If semiring S
acts on a semiring R
and M
is a module over both (compatibly with this action)
then we can turn an R
-submodule into an S
-submodule by forgetting the action of R
. We call
this restriction of scalars for submodules.
Main definitions: #
Submodule.restrictScalars
: regard anR
-submodule as anS
-submodule ifS
acts onR
V.restrictScalars S
is the S
-submodule of the S
-module given by restriction of scalars,
corresponding to V
, an R
-submodule of the original R
-module.
Equations
- Submodule.restrictScalars S V = { carrier := ↑V, add_mem' := ⋯, zero_mem' := ⋯, smul_mem' := ⋯ }
Instances For
Even though p.restrictScalars S
has type Submodule S M
, it is still an R
-module.
Equations
- Submodule.restrictScalars.origModule S R M p = inferInstance
Equations
- ⋯ = ⋯
restrictScalars S
is an embedding of the lattice of R
-submodules into
the lattice of S
-submodules.
Equations
- Submodule.restrictScalarsEmbedding S R M = { toFun := Submodule.restrictScalars S, inj' := ⋯, map_rel_iff' := ⋯ }
Instances For
Turning p : Submodule R M
into an S
-submodule gives the same module structure
as turning it into a type and adding a module structure.
Equations
- Submodule.restrictScalarsEquiv S R M p = let __src := AddEquiv.refl ↥p; { toFun := __src.toFun, map_add' := ⋯, map_smul' := ⋯, invFun := __src.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
If ring S
acts on a ring R
and M
is a module over both (compatibly with this action) then
we can turn an R
-submodule into an S
-submodule by forgetting the action of R
.
Equations
- Submodule.restrictScalarsLatticeHom S R M = { toFun := Submodule.restrictScalars S, map_sInf' := ⋯, map_sSup' := ⋯ }