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] Sinduced by the multiplication inS, whose image isM * N(Submodule.mulMap_range).Submodule.mulMap': the natural mapM ⊗[R] N →ₗ[R] M * Ninduced by multiplication inS, which is surjective (Submodule.mulMap'_surjective).Submodule.lTensorOne,Submodule.rTensorOne: the natural isomorphism ofR-modules betweeni(R) ⊗[R] NandN, resp.M ⊗[R] i(R)andM, induced by multiplication inS, herei : R → Sis the structure map. They generalizeTensorProduct.lidandTensorProduct.rid, asi(R)is not necessarily isomorphic toR.Note that we use
⊥ : Subalgebra R Sinstead 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 ((Subalgebra.toSubmodule ⊥).mulMap N)) N ⋯) ∘ₗ ((Subalgebra.toSubmodule ⊥).mulMap 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 (Subalgebra.toSubmodule ⊥))) M ⋯) ∘ₗ (M.mulMap (Subalgebra.toSubmodule ⊥)).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) ⋯ ⋯