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
Instances For
    @[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 : S →ₐ[R] T) :
    (map (↑f) M).mulMap (map (↑f) N) ∘ₗ TensorProduct.map ((↑f).submoduleMap M) ((↑f).submoduleMap N) = ↑f ∘ₗ M.mulMap N
    theorem Submodule.coe_mulMap_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 : S →ₐ[R] T) :
    ⇑((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) :
    (M.mulMap N).range = M * N
    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
    Instances For
      @[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
      Instances For
        @[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
        Instances For
          @[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
          Instances For
            @[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
            Instances For
              @[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)