Some results on tensor product of submodules #
Linear maps induced by multiplication for submodules #
Let R
be a commutative ring, S
be an R
-algebra (not necessarily commutative).
Let M
and N
be R
-submodules in S
(Submodule R S
). We define some linear maps
induced by the multiplication in S
(see also LinearMap.mul'
), which are
mainly used in the definition of linearly disjointness (Submodule.LinearDisjoint
).
Submodule.mulMap
: the naturalR
-linear mapM ⊗[R] N →ₗ[R] S
induced by the multiplication inS
, whose image isM * N
(Submodule.mulMap_range
).Submodule.mulMap'
: the natural mapM ⊗[R] N →ₗ[R] M * N
induced by multiplication inS
, which is surjective (Submodule.mulMap'_surjective
).Submodule.lTensorOne
,Submodule.rTensorOne
: the natural isomorphism ofR
-modules betweeni(R) ⊗[R] N
andN
, resp.M ⊗[R] i(R)
andM
, induced by multiplication inS
, herei : R → S
is the structure map. They generalizeTensorProduct.lid
andTensorProduct.rid
, asi(R)
is not necessarily isomorphic toR
.Note that we use
⊥ : Subalgebra R S
instead of1 : Submodule R S
, since the mapR →ₗ[R] (1 : Submodule R S)
is not defined directly in mathlib yet.
There are also Submodule.mulLeftMap
and Submodule.mulRightMap
, defined in earlier files.
If M
and N
are submodules in an algebra S
over R
, there is the natural R
-linear map
M ⊗[R] N →ₗ[R] S
induced by multiplication in S
.
Equations
- M.mulMap N = TensorProduct.lift ((LinearMap.mul R S).domRestrict₁₂ M N)
Instances For
If M
and N
are submodules in an algebra S
over R
, there is the natural R
-linear map
M ⊗[R] N →ₗ[R] M * N
induced by multiplication in S
,
which is surjective (Submodule.mulMap'_surjective
).
Equations
- M.mulMap' N = ↑(LinearEquiv.ofEq (LinearMap.range (M.mulMap N)) (M * N) ⋯) ∘ₗ (M.mulMap N).rangeRestrict
Instances For
If N
is a submodule in an algebra S
over R
, there is the natural R
-linear map
i(R) ⊗[R] N →ₗ[R] N
induced by multiplication in S
, here i : R → S
is the structure map.
This is promoted to an isomorphism of R
-modules as Submodule.lTensorOne
. Use that instead.
Equations
- N.lTensorOne' = ↑(LinearEquiv.ofEq (LinearMap.range (Submodule.mulMap 1 N)) N ⋯) ∘ₗ (Submodule.mulMap 1 N).rangeRestrict
Instances For
If N
is a submodule in an algebra S
over R
,
there is the natural isomorphism of R
-modules between
i(R) ⊗[R] N
and N
induced by multiplication in S
, here i : R → S
is the structure map.
This generalizes TensorProduct.lid
as i(R)
is not necessarily isomorphic to R
.
Equations
- N.lTensorOne = LinearEquiv.ofLinear N.lTensorOne' ((TensorProduct.mk R ↥⊥ ↥N) 1) ⋯ ⋯
Instances For
If M
is a submodule in an algebra S
over R
, there is the natural R
-linear map
M ⊗[R] i(R) →ₗ[R] M
induced by multiplication in S
, here i : R → S
is the structure map.
This is promoted to an isomorphism of R
-modules as Submodule.rTensorOne
. Use that instead.
Equations
- M.rTensorOne' = ↑(LinearEquiv.ofEq (LinearMap.range (M.mulMap 1)) M ⋯) ∘ₗ (M.mulMap 1).rangeRestrict
Instances For
If M
is a submodule in an algebra S
over R
,
there is the natural isomorphism of R
-modules between
M ⊗[R] i(R)
and M
induced by multiplication in S
, here i : R → S
is the structure map.
This generalizes TensorProduct.rid
as i(R)
is not necessarily isomorphic to R
.
Equations
- M.rTensorOne = LinearEquiv.ofLinear M.rTensorOne' (↑(TensorProduct.comm R ↥⊥ ↥M) ∘ₗ (TensorProduct.mk R ↥⊥ ↥M) 1) ⋯ ⋯