Documentation

Mathlib.Algebra.Algebra.Bilinear

Facts about algebras involving bilinear maps and tensor products #

We move a few basic statements about algebras out of Algebra.Algebra.Basic, in order to avoid importing LinearAlgebra.BilinearMap and LinearAlgebra.TensorProduct unnecessarily.

def LinearMap.mul (R : Type u_1) (A : Type u_2) [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] :

The multiplication in a non-unital non-associative algebra is a bilinear map.

A weaker version of this for semirings exists as AddMonoidHom.mul.

Equations
Instances For
    @[simp]
    theorem LinearMap.mul_apply_apply (R : Type u_1) (A : Type u_2) [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] (m x2✝ : A) :
    ((mul R A) m) x2✝ = m * x2✝

    The multiplication map on a non-unital algebra, as an R-linear map from A ⊗[R] A to A.

    Equations
    Instances For

      The multiplication map on a non-unital algebra, as an R-linear map from A ⊗[R] A to A.

      Equations
      Instances For

        The multiplication map on a non-unital algebra, as an R-linear map from A ⊗[R] A to A.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem LinearMap.mul_apply' {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] (a b : A) :
          ((mul R A) a) b = a * b
          @[simp]
          theorem LinearMap.mul'_apply {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] {a b : A} :
          (mul' R A) (a ⊗ₜ[R] b) = a * b

          The multiplication in a non-unital algebra is a bilinear map.

          A weaker version of this for non-unital non-associative algebras exists as LinearMap.mul.

          Equations
          Instances For
            @[simp]
            theorem NonUnitalAlgHom.coe_lmul_eq_mul {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] :
            (lmul R A) = (LinearMap.mul R A)
            theorem LinearMap.commute_mulLeft_right {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] (a b : A) :
            theorem LinearMap.map_mul_iff {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [NonUnitalSemiring A] [NonUnitalSemiring B] [Module R B] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] [SMulCommClass R B B] [IsScalarTower R B B] (f : A →ₗ[R] B) :
            (∀ (x y : A), f (x * y) = f x * f y) (mul R A).compr₂ f = (mul R B ∘ₗ f).compl₂ f

            A LinearMap preserves multiplication if pre- and post- composition with LinearMap.mul are equivalent. By converting the statement into an equality of LinearMaps, this lemma allows various specialized ext lemmas about →ₗ[R] to then be applied.

            This is the LinearMap version of AddMonoidHom.map_mul_iff.

            @[simp]
            theorem LinearMap.pow_mulLeft (R : Type u_1) (A : Type u_2) [Semiring R] [Semiring A] [Module R A] [SMulCommClass R A A] (a : A) (n : ) :
            mulLeft R a ^ n = mulLeft R (a ^ n)
            @[simp]
            theorem LinearMap.pow_mulRight (R : Type u_1) (A : Type u_2) [Semiring R] [Semiring A] [Module R A] [IsScalarTower R A A] (a : A) (n : ) :
            mulRight R a ^ n = mulRight R (a ^ n)
            def Algebra.lmul (R : Type u_1) (A : Type u_2) [CommSemiring R] [Semiring A] [Algebra R A] :

            The multiplication in an algebra is an algebra homomorphism into the endomorphisms on the algebra.

            A weaker version of this for non-unital algebras exists as NonUnitalAlgHom.lmul.

            Equations
            Instances For
              @[simp]
              theorem Algebra.coe_lmul_eq_mul {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] :
              (lmul R A) = (LinearMap.mul R A)
              theorem Algebra.lmul_injective {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] :
              theorem Algebra.lmul_isUnit_iff {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] {x : A} :
              IsUnit ((lmul R A) x) IsUnit x
              @[deprecated LinearMap.toSpanSingleton_one_eq_algebraLinearMap (since := "2025-12-30")]

              Alias of LinearMap.toSpanSingleton_one_eq_algebraLinearMap.

              def LinearMap.mul'' (R : Type u_1) (A : Type u_2) [CommSemiring R] [Semiring A] [Algebra R A] :

              The multiplication map on an R-algebra, as an A-linear map from A ⊗[R] A to A.

              Equations
              Instances For
                @[simp]
                theorem LinearMap.mul''_apply (R : Type u_1) (A : Type u_2) [CommSemiring R] [Semiring A] [Algebra R A] (a✝ : TensorProduct R A A) :
                (mul'' R A) a✝ = (TensorProduct.liftAux (mul R A)) a✝
                @[simp]
                theorem LinearMap.flip_mul {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalCommSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] :
                (mul R A).flip = mul R A
                theorem LinearMap.mul'_comm {R : Type u_1} {A : Type u_2} [CommSemiring R] [NonUnitalCommSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] (x : TensorProduct R A A) :
                (mul' R A) ((TensorProduct.comm R A A) x) = (mul' R A) x