Documentation

Mathlib.RingTheory.TensorProduct.Maps

Maps between tensor products of R-algebras #

This file provides results about maps between tensor products of R-algebras.

Main declarations #

References #

def Module.End.lTensorAlgHom (R : Type u_1) (M : Type u_2) (N : Type u_3) [CommSemiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] :
End R M →ₐ[R] End R (TensorProduct R N M)

The map LinearMap.lTensorHom which sends f ↦ 1 ⊗ f as a morphism of algebras.

Equations
Instances For
    @[simp]
    theorem Module.End.lTensorAlgHom_apply_apply (R : Type u_1) (M : Type u_2) (N : Type u_3) [CommSemiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] (a : End R M) (a✝ : TensorProduct R N M) :
    ((lTensorAlgHom R M N) a) a✝ = (TensorProduct.liftAux ((TensorProduct.mk R N M).compl₂ a)) a✝
    def Module.End.rTensorAlgHom (R : Type u_1) (M : Type u_2) (N : Type u_3) [CommSemiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] :
    End R M →ₐ[R] End R (TensorProduct R M N)

    The map LinearMap.rTensorHom which sends f ↦ f ⊗ 1 as a morphism of algebras.

    Equations
    Instances For
      @[simp]
      theorem Module.End.rTensorAlgHom_apply_apply (R : Type u_1) (M : Type u_2) (N : Type u_3) [CommSemiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] (a : End R M) (a✝ : TensorProduct R M N) :
      ((rTensorAlgHom R M N) a) a✝ = (TensorProduct.liftAux (TensorProduct.mk R M N ∘ₗ a)) a✝

      We build the structure maps for the symmetric monoidal category of R-algebras.

      theorem LinearMap.map_mul_of_map_mul_tmul {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] {f : TensorProduct R A B →ₗ[S] C} (hf : ∀ (a₁ a₂ : A) (b₁ b₂ : B), f ((a₁ * a₂) ⊗ₜ[R] (b₁ * b₂)) = f (a₁ ⊗ₜ[R] b₁) * f (a₂ ⊗ₜ[R] b₂)) (x y : TensorProduct R A B) :
      f (x * y) = f x * f y

      To check a linear map preserves multiplication, it suffices to check it on pure tensors. See algHomOfLinearMapTensorProduct for a bundled version.

      def Algebra.TensorProduct.algHomOfLinearMapTensorProduct {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] (f : TensorProduct R A B →ₗ[S] C) (h_mul : ∀ (a₁ a₂ : A) (b₁ b₂ : B), f ((a₁ * a₂) ⊗ₜ[R] (b₁ * b₂)) = f (a₁ ⊗ₜ[R] b₁) * f (a₂ ⊗ₜ[R] b₂)) (h_one : f (1 ⊗ₜ[R] 1) = 1) :

      Build an algebra morphism from a linear map out of a tensor product, and evidence that on pure tensors, it preserves multiplication and the identity.

      Note that we state h_one using 1 ⊗ₜ[R] 1 instead of 1 so that lemmas about f applied to pure tensors can be directly applied by the caller (without needing TensorProduct.one_def).

      Equations
      Instances For
        @[simp]
        theorem Algebra.TensorProduct.algHomOfLinearMapTensorProduct_apply {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] (f : TensorProduct R A B →ₗ[S] C) (h_mul : ∀ (a₁ a₂ : A) (b₁ b₂ : B), f ((a₁ * a₂) ⊗ₜ[R] (b₁ * b₂)) = f (a₁ ⊗ₜ[R] b₁) * f (a₂ ⊗ₜ[R] b₂)) (h_one : f (1 ⊗ₜ[R] 1) = 1) (x : TensorProduct R A B) :
        (algHomOfLinearMapTensorProduct f h_mul h_one) x = f x
        def Algebra.TensorProduct.algEquivOfLinearEquivTensorProduct {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] (f : TensorProduct R A B ≃ₗ[S] C) (h_mul : ∀ (a₁ a₂ : A) (b₁ b₂ : B), f ((a₁ * a₂) ⊗ₜ[R] (b₁ * b₂)) = f (a₁ ⊗ₜ[R] b₁) * f (a₂ ⊗ₜ[R] b₂)) (h_one : f (1 ⊗ₜ[R] 1) = 1) :

        Build an algebra equivalence from a linear equivalence out of a tensor product, and evidence that on pure tensors, it preserves multiplication and the identity.

        Note that we state h_one using 1 ⊗ₜ[R] 1 instead of 1 so that lemmas about f applied to pure tensors can be directly applied by the caller (without needing TensorProduct.one_def).

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem Algebra.TensorProduct.algEquivOfLinearEquivTensorProduct_apply {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] (f : TensorProduct R A B ≃ₗ[S] C) (h_mul : ∀ (a₁ a₂ : A) (b₁ b₂ : B), f ((a₁ * a₂) ⊗ₜ[R] (b₁ * b₂)) = f (a₁ ⊗ₜ[R] b₁) * f (a₂ ⊗ₜ[R] b₂)) (h_one : f (1 ⊗ₜ[R] 1) = 1) (x : TensorProduct R A B) :
          def Algebra.TensorProduct.algEquivOfLinearEquivTripleTensorProduct {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Semiring D] [Algebra R D] [Algebra R C] (f : TensorProduct R (TensorProduct R A B) C ≃ₗ[R] D) (h_mul : ∀ (a₁ a₂ : A) (b₁ b₂ : B) (c₁ c₂ : C), f ((a₁ * a₂) ⊗ₜ[R] (b₁ * b₂) ⊗ₜ[R] (c₁ * c₂)) = f (a₁ ⊗ₜ[R] b₁ ⊗ₜ[R] c₁) * f (a₂ ⊗ₜ[R] b₂ ⊗ₜ[R] c₂)) (h_one : f (1 ⊗ₜ[R] 1 ⊗ₜ[R] 1) = 1) :

          Build an algebra equivalence from a linear equivalence out of a triple tensor product, and evidence of multiplicativity on pure tensors.

          Equations
          Instances For
            @[simp]
            theorem Algebra.TensorProduct.algEquivOfLinearEquivTripleTensorProduct_apply {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Semiring D] [Algebra R D] [Algebra R C] (f : TensorProduct R (TensorProduct R A B) C ≃ₗ[R] D) (h_mul : ∀ (a₁ a₂ : A) (b₁ b₂ : B) (c₁ c₂ : C), f ((a₁ * a₂) ⊗ₜ[R] (b₁ * b₂) ⊗ₜ[R] (c₁ * c₂)) = f (a₁ ⊗ₜ[R] b₁ ⊗ₜ[R] c₁) * f (a₂ ⊗ₜ[R] b₂ ⊗ₜ[R] c₂)) (h_one : f (1 ⊗ₜ[R] 1 ⊗ₜ[R] 1) = 1) (x : TensorProduct R (TensorProduct R A B) C) :
            def Algebra.TensorProduct.lift {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] [Algebra R C] [IsScalarTower R S C] (f : A →ₐ[S] C) (g : B →ₐ[R] C) (hfg : ∀ (x : A) (y : B), Commute (f x) (g y)) :

            The forward direction of the universal property of tensor products of algebras; any algebra morphism from the tensor product can be factored as the product of two algebra morphisms that commute.

            See Algebra.TensorProduct.liftEquiv for the fact that every morphism factors this way.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem Algebra.TensorProduct.lift_tmul {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] [Algebra R C] [IsScalarTower R S C] (f : A →ₐ[S] C) (g : B →ₐ[R] C) (hfg : ∀ (x : A) (y : B), Commute (f x) (g y)) (a : A) (b : B) :
              (lift f g hfg) (a ⊗ₜ[R] b) = f a * g b
              @[simp]
              theorem Algebra.TensorProduct.lift_comp_includeLeft {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] [Algebra R C] [IsScalarTower R S C] (f : A →ₐ[S] C) (g : B →ₐ[R] C) (hfg : ∀ (x : A) (y : B), Commute (f x) (g y)) :
              (lift f g hfg).comp includeLeft = f
              @[simp]
              theorem Algebra.TensorProduct.lift_comp_includeRight {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] [Algebra R C] [IsScalarTower R S C] (f : A →ₐ[S] C) (g : B →ₐ[R] C) (hfg : ∀ (x : A) (y : B), Commute (f x) (g y)) :
              def Algebra.TensorProduct.liftEquiv {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] [Algebra R C] [IsScalarTower R S C] :
              { fg : (A →ₐ[S] C) × (B →ₐ[R] C) // ∀ (x : A) (y : B), Commute (fg.1 x) (fg.2 y) } (TensorProduct R A B →ₐ[S] C)

              The universal property of the tensor product of algebras.

              Pairs of algebra morphisms that commute are equivalent to algebra morphisms from the tensor product.

              This is Algebra.TensorProduct.lift as an equivalence.

              See also GradedTensorProduct.liftEquiv for an alternative commutativity requirement for graded algebra.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem Algebra.TensorProduct.liftEquiv_apply {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] [Algebra R C] [IsScalarTower R S C] (fg : { fg : (A →ₐ[S] C) × (B →ₐ[R] C) // ∀ (x : A) (y : B), Commute (fg.1 x) (fg.2 y) }) :
                liftEquiv fg = lift (↑fg).1 (↑fg).2
                @[simp]
                theorem Algebra.TensorProduct.liftEquiv_symm_apply_coe {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra S C] [Algebra R C] [IsScalarTower R S C] (f' : TensorProduct R A B →ₐ[S] C) :

                The base ring is a left identity for the tensor product of algebra, up to algebra isomorphism.

                Equations
                Instances For
                  @[simp]
                  theorem Algebra.TensorProduct.lid_tmul {R : Type uR} {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] (r : R) (a : A) :
                  (TensorProduct.lid R A) (r ⊗ₜ[R] a) = r a
                  @[simp]
                  theorem Algebra.TensorProduct.lid_symm_apply (R : Type uR) {A : Type uA} [CommSemiring R] [Semiring A] [Algebra R A] (a : A) :
                  def Algebra.TensorProduct.rid (R : Type uR) (S : Type uS) (A : Type uA) [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] :

                  The base ring is a right identity for the tensor product of algebra, up to algebra isomorphism.

                  Note that if A is commutative this can be instantiated with S = A.

                  Equations
                  Instances For
                    @[simp]
                    theorem Algebra.TensorProduct.rid_tmul {R : Type uR} (S : Type uS) {A : Type uA} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] (r : R) (a : A) :
                    (TensorProduct.rid R S A) (a ⊗ₜ[R] r) = r a
                    @[simp]
                    theorem Algebra.TensorProduct.rid_symm_apply (R : Type uR) (S : Type uS) {A : Type uA} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] (a : A) :

                    If A and B are both R- and S-algebras and their actions on them commute, and if the S-action on A ⊗[R] B can switch between the two factors, then there is a canonical S-algebra homomorphism from A ⊗[S] B to A ⊗[R] B.

                    Equations
                    Instances For
                      @[simp]
                      theorem Algebra.TensorProduct.mapOfCompatibleSMul_tmul (R : Type u_3) (S : Type u_4) (A : Type u_5) (B : Type u_6) [CommSemiring R] [CommSemiring S] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] [Algebra S A] [Algebra S B] [SMulCommClass R S A] [TensorProduct.CompatibleSMul R S A B] (m : A) (n : B) :
                      (mapOfCompatibleSMul R S A B) (m ⊗ₜ[S] n) = m ⊗ₜ[R] n

                      If the R- and S-actions on A and B satisfy CompatibleSMul both ways, then A ⊗[S] B is canonically isomorphic to A ⊗[R] B.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For

                        If the R- and S- action on S and A satisfy CompatibleSMul both ways, then S ⊗[R] A is canonically isomorphic to A.

                        Equations
                        Instances For
                          theorem Algebra.TensorProduct.lidOfCompatibleSMul_tmul (R : Type u_3) (S : Type u_4) (A : Type u_5) [CommSemiring R] [CommSemiring S] [Semiring A] [Algebra R A] [Algebra S A] [Algebra R S] [TensorProduct.CompatibleSMul R S S A] [TensorProduct.CompatibleSMul S R S A] (s : S) (a : A) :
                          (lidOfCompatibleSMul R S A) (s ⊗ₜ[R] a) = s a
                          def Algebra.TensorProduct.comm (R : Type uR) (A : Type uA) (B : Type uB) [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] :

                          The tensor product of R-algebras is commutative, up to algebra isomorphism.

                          Equations
                          Instances For
                            @[simp]
                            theorem Algebra.TensorProduct.comm_tmul (R : Type uR) {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (a : A) (b : B) :
                            @[simp]
                            theorem Algebra.TensorProduct.comm_symm_tmul (R : Type uR) {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (a : A) (b : B) :
                            theorem Algebra.TensorProduct.adjoin_tmul_eq_top (R : Type uR) (A : Type uA) (B : Type uB) [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] :
                            adjoin R {t : TensorProduct R A B | ∃ (a : A) (b : B), a ⊗ₜ[R] b = t} =
                            theorem Algebra.TensorProduct.assoc_aux_1 {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] (a₁ a₂ : A) (b₁ b₂ : B) (c₁ c₂ : C) :
                            (_root_.TensorProduct.assoc R A B C) ((a₁ * a₂) ⊗ₜ[R] (b₁ * b₂) ⊗ₜ[R] (c₁ * c₂)) = (_root_.TensorProduct.assoc R A B C) (a₁ ⊗ₜ[R] b₁ ⊗ₜ[R] c₁) * (_root_.TensorProduct.assoc R A B C) (a₂ ⊗ₜ[R] b₂ ⊗ₜ[R] c₂)
                            theorem Algebra.TensorProduct.assoc_aux_2 {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] :
                            def Algebra.TensorProduct.assoc (R : Type uR) (S : Type uS) (A : Type uA) (C : Type uC) (D : Type uD) [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] :

                            The associator for tensor product of R-algebras, as an algebra isomorphism.

                            Equations
                            Instances For
                              @[simp]
                              theorem Algebra.TensorProduct.assoc_toLinearEquiv (R : Type uR) (S : Type uS) (A : Type uA) (C : Type uC) (D : Type uD) [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] :
                              @[simp]
                              theorem Algebra.TensorProduct.assoc_tmul (R : Type uR) (S : Type uS) {A : Type uA} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] (a : A) (b : C) (c : D) :
                              (TensorProduct.assoc R S A C D) (a ⊗ₜ[S] b ⊗ₜ[R] c) = a ⊗ₜ[S] (b ⊗ₜ[R] c)
                              @[simp]
                              theorem Algebra.TensorProduct.assoc_symm_tmul (R : Type uR) (S : Type uS) {A : Type uA} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] (a : A) (b : C) (c : D) :
                              (TensorProduct.assoc R S A C D).symm (a ⊗ₜ[S] (b ⊗ₜ[R] c)) = a ⊗ₜ[S] b ⊗ₜ[R] c
                              def Algebra.TensorProduct.cancelBaseChange (R : Type uR) (S : Type uS) [CommSemiring R] [CommSemiring S] [Algebra R S] (T : Type u_3) (A : Type u_4) (B : Type u_5) [CommSemiring T] [CommSemiring A] [CommSemiring B] [Algebra R T] [Algebra R A] [Algebra R B] [Algebra T A] [IsScalarTower R T A] [Algebra S A] [IsScalarTower R S A] [Algebra S T] [IsScalarTower S T A] :

                              The natural isomorphism A ⊗[S] (S ⊗[R] B) ≃ₐ[T] A ⊗[R] B.

                              Equations
                              Instances For
                                @[simp]
                                theorem Algebra.TensorProduct.cancelBaseChange_tmul (R : Type uR) (S : Type uS) [CommSemiring R] [CommSemiring S] [Algebra R S] (T : Type u_3) (A : Type u_4) (B : Type u_5) [CommSemiring T] [CommSemiring A] [CommSemiring B] [Algebra R T] [Algebra R A] [Algebra R B] [Algebra T A] [IsScalarTower R T A] [Algebra S A] [IsScalarTower R S A] [Algebra S T] [IsScalarTower S T A] (a : A) (s : S) (b : B) :
                                (cancelBaseChange R S T A B) (a ⊗ₜ[S] (s ⊗ₜ[R] b)) = (s a) ⊗ₜ[R] b
                                @[simp]
                                theorem Algebra.TensorProduct.cancelBaseChange_symm_tmul (R : Type uR) (S : Type uS) [CommSemiring R] [CommSemiring S] [Algebra R S] (T : Type u_3) (A : Type u_4) (B : Type u_5) [CommSemiring T] [CommSemiring A] [CommSemiring B] [Algebra R T] [Algebra R A] [Algebra R B] [Algebra T A] [IsScalarTower R T A] [Algebra S A] [IsScalarTower R S A] [Algebra S T] [IsScalarTower S T A] (a : A) (b : B) :
                                (cancelBaseChange R S T A B).symm (a ⊗ₜ[R] b) = a ⊗ₜ[S] (1 ⊗ₜ[R] b)
                                def Algebra.TensorProduct.map {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] (f : A →ₐ[S] C) (g : B →ₐ[R] D) :

                                The tensor product of a pair of algebra morphisms.

                                Equations
                                Instances For
                                  @[simp]
                                  theorem Algebra.TensorProduct.map_tmul {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] (f : A →ₐ[S] C) (g : B →ₐ[R] D) (a : A) (b : B) :
                                  (map f g) (a ⊗ₜ[R] b) = f a ⊗ₜ[R] g b
                                  @[simp]
                                  theorem Algebra.TensorProduct.map_id {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] :
                                  theorem Algebra.TensorProduct.map_comp {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} {E : Type uE} {F : Type uF} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] [Semiring E] [Algebra R E] [Algebra S E] [IsScalarTower R S E] [Semiring F] [Algebra R F] (f₂ : C →ₐ[S] E) (f₁ : A →ₐ[S] C) (g₂ : D →ₐ[R] F) (g₁ : B →ₐ[R] D) :
                                  map (f₂.comp f₁) (g₂.comp g₁) = (map f₂ g₂).comp (map f₁ g₁)
                                  theorem Algebra.TensorProduct.map_id_comp {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {D : Type uD} {F : Type uF} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring D] [Algebra R D] [Semiring F] [Algebra R F] (g₂ : D →ₐ[R] F) (g₁ : B →ₐ[R] D) :
                                  map (AlgHom.id S A) (g₂.comp g₁) = (map (AlgHom.id S A) g₂).comp (map (AlgHom.id S A) g₁)
                                  theorem Algebra.TensorProduct.map_comp_id {R : Type uR} {S : Type uS} {A : Type uA} {C : Type uC} {E : Type uE} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring E] [Algebra R E] [Algebra S E] [IsScalarTower R S E] (f₂ : C →ₐ[S] E) (f₁ : A →ₐ[S] C) :
                                  map (f₂.comp f₁) (AlgHom.id R E) = (map f₂ (AlgHom.id R E)).comp (map f₁ (AlgHom.id R E))
                                  @[simp]
                                  theorem Algebra.TensorProduct.map_comp_includeLeft {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] (f : A →ₐ[S] C) (g : B →ₐ[R] D) :
                                  @[simp]
                                  theorem Algebra.TensorProduct.map_restrictScalars_comp_includeRight {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] (f : A →ₐ[S] C) (g : B →ₐ[R] D) :
                                  @[simp]
                                  theorem Algebra.TensorProduct.map_comp_includeRight {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Semiring D] [Algebra R D] (f : A →ₐ[R] C) (g : B →ₐ[R] D) :
                                  theorem Algebra.TensorProduct.map_range {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Semiring D] [Algebra R D] (f : A →ₐ[R] C) (g : B →ₐ[R] D) :
                                  theorem Algebra.TensorProduct.comm_comp_map {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Semiring D] [Algebra R D] (f : A →ₐ[R] C) (g : B →ₐ[R] D) :
                                  (↑(TensorProduct.comm R C D)).comp (map f g) = (map g f).comp (TensorProduct.comm R A B)
                                  theorem Algebra.TensorProduct.comm_comp_map_apply {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Semiring D] [Algebra R D] (f : A →ₐ[R] C) (g : B →ₐ[R] D) (x : TensorProduct R A B) :
                                  (TensorProduct.comm R C D) ((map f g) x) = (map g f) ((TensorProduct.comm R A B) x)
                                  def Algebra.TensorProduct.congr {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] (f : A ≃ₐ[S] C) (g : B ≃ₐ[R] D) :

                                  Construct an isomorphism between tensor products of an S-algebra with an R-algebra from S- and R- isomorphisms between the tensor factors.

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem Algebra.TensorProduct.congr_toLinearEquiv {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] (f : A ≃ₐ[S] C) (g : B ≃ₐ[R] D) :
                                    @[simp]
                                    theorem Algebra.TensorProduct.congr_apply {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] (f : A ≃ₐ[S] C) (g : B ≃ₐ[R] D) (x : TensorProduct R A B) :
                                    (congr f g) x = (map f g) x
                                    @[simp]
                                    theorem Algebra.TensorProduct.congr_symm_apply {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] (f : A ≃ₐ[S] C) (g : B ≃ₐ[R] D) (x : TensorProduct R C D) :
                                    (congr f g).symm x = (map f.symm g.symm) x
                                    theorem Algebra.TensorProduct.congr_trans {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} {E : Type uE} {F : Type uF} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] [Semiring E] [Algebra R E] [Algebra S E] [IsScalarTower R S E] [Semiring F] [Algebra R F] (f₁ : A ≃ₐ[S] C) (f₂ : C ≃ₐ[S] E) (g₁ : B ≃ₐ[R] D) (g₂ : D ≃ₐ[R] F) :
                                    congr (f₁.trans f₂) (g₁.trans g₂) = (congr f₁ g₁).trans (congr f₂ g₂)
                                    theorem Algebra.TensorProduct.congr_symm {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] (f : A ≃ₐ[S] C) (g : B ≃ₐ[R] D) :
                                    def Algebra.TensorProduct.leftComm (R : Type uR) (A : Type uA) (B : Type uB) (C : Type uC) [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] :

                                    Tensor product of algebras analogue of mul_left_comm.

                                    This is the algebra version of TensorProduct.leftComm.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[simp]
                                      theorem Algebra.TensorProduct.leftComm_tmul {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] (m : A) (n : B) (p : C) :
                                      (leftComm R A B C) (m ⊗ₜ[R] (n ⊗ₜ[R] p)) = n ⊗ₜ[R] (m ⊗ₜ[R] p)
                                      @[simp]
                                      theorem Algebra.TensorProduct.leftComm_symm_tmul {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] (m : A) (n : B) (p : C) :
                                      (leftComm R A B C).symm (n ⊗ₜ[R] (m ⊗ₜ[R] p)) = m ⊗ₜ[R] (n ⊗ₜ[R] p)
                                      @[simp]
                                      theorem Algebra.TensorProduct.leftComm_toLinearEquiv {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] :
                                      def Algebra.TensorProduct.tensorTensorTensorComm (R : Type uR) (R' : Type u_1) (S : Type uS) (T : Type u_2) (A : Type uA) (B : Type uB) (C : Type uC) (D : Type uD) [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] [CommSemiring T] [Algebra R T] [Algebra T A] [IsScalarTower R T A] [SMulCommClass S T A] [Algebra S T] [IsScalarTower S T A] [CommSemiring R'] [Algebra R R'] [Algebra R' T] [Algebra R' A] [Algebra R' B] [IsScalarTower R R' A] [SMulCommClass S R' A] [SMulCommClass R' S A] [IsScalarTower R' T A] [IsScalarTower R R' B] :

                                      Tensor product of algebras analogue of mul_mul_mul_comm.

                                      This is the algebra version of TensorProduct.AlgebraTensorModule.tensorTensorTensorComm.

                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem Algebra.TensorProduct.tensorTensorTensorComm_tmul {R : Type uR} {R' : Type u_1} {S : Type uS} {T : Type u_2} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] [CommSemiring T] [Algebra R T] [Algebra T A] [IsScalarTower R T A] [SMulCommClass S T A] [Algebra S T] [IsScalarTower S T A] [CommSemiring R'] [Algebra R R'] [Algebra R' T] [Algebra R' A] [Algebra R' B] [IsScalarTower R R' A] [SMulCommClass S R' A] [SMulCommClass R' S A] [IsScalarTower R' T A] [IsScalarTower R R' B] (m : A) (n : B) (p : C) (q : D) :
                                        (tensorTensorTensorComm R R' S T A B C D) (m ⊗ₜ[R'] n ⊗ₜ[S] (p ⊗ₜ[R] q)) = m ⊗ₜ[S] p ⊗ₜ[R'] (n ⊗ₜ[R] q)
                                        @[simp]
                                        theorem Algebra.TensorProduct.tensorTensorTensorComm_symm_tmul {R : Type uR} {R' : Type u_1} {S : Type uS} {T : Type u_2} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] [CommSemiring T] [Algebra R T] [Algebra T A] [IsScalarTower R T A] [SMulCommClass S T A] [Algebra S T] [IsScalarTower S T A] [CommSemiring R'] [Algebra R R'] [Algebra R' T] [Algebra R' A] [Algebra R' B] [IsScalarTower R R' A] [SMulCommClass S R' A] [SMulCommClass R' S A] [IsScalarTower R' T A] [IsScalarTower R R' B] (m : A) (n : C) (p : B) (q : D) :
                                        (tensorTensorTensorComm R R' S T A B C D).symm (m ⊗ₜ[S] n ⊗ₜ[R'] (p ⊗ₜ[R] q)) = m ⊗ₜ[R'] p ⊗ₜ[S] (n ⊗ₜ[R] q)
                                        theorem Algebra.TensorProduct.tensorTensorTensorComm_symm {R : Type uR} {R' : Type u_1} {S : Type uS} {T : Type u_2} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] [CommSemiring T] [Algebra R T] [Algebra T A] [IsScalarTower R T A] [SMulCommClass S T A] [Algebra S T] [IsScalarTower S T A] [CommSemiring R'] [Algebra R R'] [Algebra R' T] [Algebra R' A] [Algebra R' B] [IsScalarTower R R' A] [SMulCommClass S R' A] [SMulCommClass R' S A] [IsScalarTower R' T A] [IsScalarTower R R' B] :
                                        (tensorTensorTensorComm R R' S T A B C D).symm = tensorTensorTensorComm R S R' T A C B D
                                        theorem Algebra.TensorProduct.tensorTensorTensorComm_toLinearEquiv {R : Type uR} {R' : Type u_1} {S : Type uS} {T : Type u_2} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] [Semiring D] [Algebra R D] [CommSemiring T] [Algebra R T] [Algebra T A] [IsScalarTower R T A] [SMulCommClass S T A] [Algebra S T] [IsScalarTower S T A] [CommSemiring R'] [Algebra R R'] [Algebra R' T] [Algebra R' A] [Algebra R' B] [IsScalarTower R R' A] [SMulCommClass S R' A] [SMulCommClass R' S A] [IsScalarTower R' T A] [IsScalarTower R R' B] :
                                        theorem Algebra.TensorProduct.map_bijective {R : Type uR} {A : Type uA} {B : Type uB} {C : Type uC} {D : Type uD} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] [Semiring C] [Algebra R C] [Semiring D] [Algebra R D] {f : A →ₐ[R] B} {g : C →ₐ[R] D} (hf : Function.Bijective f) (hg : Function.Bijective g) :
                                        @[reducible, inline]
                                        abbrev Algebra.TensorProduct.productLeftAlgHom {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} {C : Type uC} [CommSemiring R] [CommSemiring S] [Algebra R S] [Semiring A] [Algebra R A] [Algebra S A] [IsScalarTower R S A] [Semiring B] [Algebra R B] [CommSemiring C] [Algebra R C] [Algebra S C] [IsScalarTower R S C] (f : A →ₐ[S] C) (g : B →ₐ[R] C) :

                                        If A, B, C are R-algebras, A and C are also S-algebras (forming a tower as ·/S/R), then the product map of f : A →ₐ[S] C and g : B →ₐ[R] C is an S-algebra homomorphism.

                                        This is just a special case of Algebra.TensorProduct.lift for when C is commutative.

                                        Equations
                                        Instances For
                                          theorem Algebra.TensorProduct.tmul_one_eq_one_tmul {R : Type uR} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Algebra R A] [Semiring B] [Algebra R B] (r : R) :
                                          (algebraMap R A) r ⊗ₜ[R] 1 = 1 ⊗ₜ[R] (algebraMap R B) r

                                          LinearMap.mul' as an AlgHom over the algebra.

                                          Equations
                                          Instances For
                                            @[simp]
                                            theorem Algebra.TensorProduct.lmul'_apply_tmul {R : Type uR} {S : Type uS} [CommSemiring R] [CommSemiring S] [Algebra R S] (a b : S) :
                                            (lmul' R) (a ⊗ₜ[R] b) = a * b
                                            theorem Algebra.TensorProduct.lmul'_comp_map {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [CommSemiring S] [Algebra R A] [Algebra R B] [Algebra R S] (f : A →ₐ[R] S) (g : B →ₐ[R] S) :
                                            (lmul' R).comp (map f g) = lift f g

                                            If multiplication by elements of S can switch between the two factors of S ⊗[R] S, then lmul'' is an isomorphism.

                                            Equations
                                            Instances For
                                              def Algebra.TensorProduct.productMap {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [CommSemiring S] [Algebra R A] [Algebra R B] [Algebra R S] (f : A →ₐ[R] S) (g : B →ₐ[R] S) :

                                              If S is commutative, for a pair of morphisms f : A →ₐ[R] S, g : B →ₐ[R] S, We obtain a map A ⊗[R] B →ₐ[R] S that commutes with f, g via a ⊗ b ↦ f(a) * g(b).

                                              This is a special case of Algebra.TensorProduct.productLeftAlgHom for when the two base rings are the same.

                                              Equations
                                              Instances For
                                                theorem Algebra.TensorProduct.productMap_eq_comp_map {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [CommSemiring S] [Algebra R A] [Algebra R B] [Algebra R S] (f : A →ₐ[R] S) (g : B →ₐ[R] S) :
                                                productMap f g = (lmul' R).comp (map f g)
                                                @[simp]
                                                theorem Algebra.TensorProduct.productMap_apply_tmul {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [CommSemiring S] [Algebra R A] [Algebra R B] [Algebra R S] (f : A →ₐ[R] S) (g : B →ₐ[R] S) (a : A) (b : B) :
                                                (productMap f g) (a ⊗ₜ[R] b) = f a * g b
                                                theorem Algebra.TensorProduct.productMap_left_apply {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [CommSemiring S] [Algebra R A] [Algebra R B] [Algebra R S] (f : A →ₐ[R] S) (g : B →ₐ[R] S) (a : A) :
                                                (productMap f g) (a ⊗ₜ[R] 1) = f a
                                                @[simp]
                                                theorem Algebra.TensorProduct.productMap_left {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [CommSemiring S] [Algebra R A] [Algebra R B] [Algebra R S] (f : A →ₐ[R] S) (g : B →ₐ[R] S) :
                                                theorem Algebra.TensorProduct.productMap_right_apply {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [CommSemiring S] [Algebra R A] [Algebra R B] [Algebra R S] (f : A →ₐ[R] S) (g : B →ₐ[R] S) (b : B) :
                                                (productMap f g) (1 ⊗ₜ[R] b) = g b
                                                @[simp]
                                                theorem Algebra.TensorProduct.productMap_right {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [CommSemiring S] [Algebra R A] [Algebra R B] [Algebra R S] (f : A →ₐ[R] S) (g : B →ₐ[R] S) :
                                                theorem Algebra.TensorProduct.productMap_range {R : Type uR} {S : Type uS} {A : Type uA} {B : Type uB} [CommSemiring R] [Semiring A] [Semiring B] [CommSemiring S] [Algebra R A] [Algebra R B] [Algebra R S] (f : A →ₐ[R] S) (g : B →ₐ[R] S) :
                                                (productMap f g).range = f.rangeg.range
                                                def LinearMap.tensorProduct (R : Type u_1) (A : Type u_2) (M : Type u_3) (N : Type u_4) [CommSemiring R] [CommSemiring A] [Algebra R A] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] :

                                                The natural linear map $A ⊗ \text{Hom}_R(M, N) → \text{Hom}_A (M_A, N_A)$, where $M_A$ and $N_A$ are the respective modules over $A$ obtained by extension of scalars.

                                                See LinearMap.tensorProductEnd for this map specialized to endomorphisms, and bundled as A-algebra homomorphism.

                                                Equations
                                                Instances For
                                                  @[simp]
                                                  theorem LinearMap.tensorProduct_apply (R : Type u_1) (A : Type u_2) (M : Type u_3) (N : Type u_4) [CommSemiring R] [CommSemiring A] [Algebra R A] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] (a✝ : TensorProduct R A (M →ₗ[R] N)) :
                                                  (tensorProduct R A M N) a✝ = (TensorProduct.liftAux (R { toFun := fun (a : A) => a baseChangeHom R A M N, map_add' := , map_smul' := })) a✝

                                                  The natural A-algebra homomorphism $A ⊗ (\text{End}_R M) → \text{End}_A (A ⊗ M)$, where M is an R-module, and A an R-algebra.

                                                  Equations
                                                  Instances For
                                                    @[simp]
                                                    theorem LinearMap.tensorProductEnd_apply (R : Type u_1) (A : Type u_2) (M : Type u_3) [CommSemiring R] [CommSemiring A] [Algebra R A] [AddCommMonoid M] [Module R M] (a : TensorProduct R A (Module.End R M)) :
                                                    (tensorProductEnd R A M) a = (TensorProduct.liftAux (R { toFun := fun (a : A) => a baseChangeHom R A M M, map_add' := , map_smul' := })) a
                                                    def Module.endTensorEndAlgHom {R : Type u_1} {S : Type u_2} {A : Type u_3} {M : Type u_4} {N : Type u_5} [CommSemiring R] [CommSemiring S] [Semiring A] [AddCommMonoid M] [AddCommMonoid N] [Algebra R S] [Algebra S A] [Algebra R A] [Module R M] [Module S M] [Module A M] [Module R N] [IsScalarTower R A M] [IsScalarTower S A M] [IsScalarTower R S M] :
                                                    TensorProduct R (End A M) (End R N) →ₐ[S] End A (TensorProduct R M N)

                                                    The algebra homomorphism from End M ⊗ End N to End (M ⊗ N) sending f ⊗ₜ g to the TensorProduct.map f g, the tensor product of the two maps.

                                                    This is an AlgHom version of TensorProduct.AlgebraTensorModule.homTensorHomMap. Like that definition, this is generalized across many different rings; namely a tower of algebras A/S/R.

                                                    Equations
                                                    Instances For
                                                      theorem Module.endTensorEndAlgHom_apply {R : Type u_1} {S : Type u_2} {A : Type u_3} {M : Type u_4} {N : Type u_5} [CommSemiring R] [CommSemiring S] [Semiring A] [AddCommMonoid M] [AddCommMonoid N] [Algebra R S] [Algebra S A] [Algebra R A] [Module R M] [Module S M] [Module A M] [Module R N] [IsScalarTower R A M] [IsScalarTower S A M] [IsScalarTower R S M] (f : End A M) (g : End R N) :