Documentation

Mathlib.LinearAlgebra.TensorProduct.Submodule

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).

There are also Submodule.mulLeftMap and Submodule.mulRightMap, defined in earlier files.

def Submodule.mulMap {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (M N : Submodule R S) :
TensorProduct R M N →ₗ[R] S

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
@[simp]
theorem Submodule.mulMap_tmul {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (M N : Submodule R S) (m : M) (n : N) :
(M.mulMap N) (m ⊗ₜ[R] n) = m * n
theorem Submodule.mulMap_map_comp_eq {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (M N : Submodule R S) {T : Type w} [Semiring T] [Algebra R T] {F : Type u_1} [FunLike F S T] [AlgHomClass F R S T] (f : F) :
(map f M).mulMap (map f N) ∘ₗ TensorProduct.map ((↑f).submoduleMap M) ((↑f).submoduleMap N) = f ∘ₗ M.mulMap N
theorem Submodule.mulMap_comm_of_commute {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (M N : Submodule R S) (hc : ∀ (m : M) (n : N), Commute m n) :
N.mulMap M = M.mulMap N ∘ₗ (TensorProduct.comm R N M)
theorem Submodule.mulMap_comp_rTensor {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {M : Submodule R S} (N : Submodule R S) {M' : Submodule R S} (hM : M' M) :
theorem Submodule.mulMap_comp_lTensor {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (M : Submodule R S) {N N' : Submodule R S} (hN : N' N) :
theorem Submodule.mulMap_comp_map_inclusion {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {M N M' N' : Submodule R S} (hM : M' M) (hN : N' N) :
theorem Submodule.mulMap_range {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (M N : Submodule R S) :
def Submodule.mulMap' {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (M N : Submodule R S) :
TensorProduct R M N →ₗ[R] ↥(M * N)

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
@[simp]
theorem Submodule.val_mulMap'_tmul {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {M N : Submodule R S} (m : M) (n : N) :
((M.mulMap' N) (m ⊗ₜ[R] n)) = m * n
def Submodule.lTensorOne' {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (N : Submodule R S) :
TensorProduct R N →ₗ[R] N

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
@[simp]
theorem Submodule.lTensorOne'_tmul {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {N : Submodule R S} (y : R) (n : N) :
N.lTensorOne' ((algebraMap R ) y ⊗ₜ[R] n) = y n
@[simp]
theorem Submodule.lTensorOne'_one_tmul {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {N : Submodule R S} (n : N) :
def Submodule.lTensorOne {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (N : Submodule R S) :
TensorProduct R N ≃ₗ[R] N

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
@[simp]
theorem Submodule.lTensorOne_tmul {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {N : Submodule R S} (y : R) (n : N) :
N.lTensorOne ((algebraMap R ) y ⊗ₜ[R] n) = y n
@[simp]
theorem Submodule.lTensorOne_one_tmul {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {N : Submodule R S} (n : N) :
N.lTensorOne (1 ⊗ₜ[R] n) = n
@[simp]
theorem Submodule.lTensorOne_symm_apply {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {N : Submodule R S} (n : N) :
def Submodule.rTensorOne' {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (M : Submodule R S) :
TensorProduct R M →ₗ[R] M

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
@[simp]
theorem Submodule.rTensorOne'_tmul {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {M : Submodule R S} (y : R) (m : M) :
M.rTensorOne' (m ⊗ₜ[R] (algebraMap R ) y) = y m
@[simp]
theorem Submodule.rTensorOne'_tmul_one {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {M : Submodule R S} (m : M) :
def Submodule.rTensorOne {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (M : Submodule R S) :
TensorProduct R M ≃ₗ[R] M

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
@[simp]
theorem Submodule.rTensorOne_tmul {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {M : Submodule R S} (y : R) (m : M) :
M.rTensorOne (m ⊗ₜ[R] (algebraMap R ) y) = y m
@[simp]
theorem Submodule.rTensorOne_tmul_one {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {M : Submodule R S} (m : M) :
M.rTensorOne (m ⊗ₜ[R] 1) = m
@[simp]
theorem Submodule.rTensorOne_symm_apply {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {M : Submodule R S} (m : M) :
theorem Submodule.mulLeftMap_eq_mulMap_comp {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] {M : Submodule R S} (N : Submodule R S) {ι : Type u_1} [DecidableEq ι] (m : ιM) :
theorem Submodule.mulRightMap_eq_mulMap_comp {R : Type u} {S : Type v} [CommSemiring R] [Semiring S] [Algebra R S] (M : Submodule R S) {N : Submodule R S} {ι : Type u_1} [DecidableEq ι] (n : ιN) :
theorem Submodule.mulMap_comm {R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] [Algebra R S] (M N : Submodule R S) :
N.mulMap M = M.mulMap N ∘ₗ (TensorProduct.comm R N M)