Documentation

Mathlib.Data.Matrix.Bilinear

Bundled versions of multiplication for matrices #

This file provides versions of LinearMap.mulLeft and LinearMap.mulRight which work for the heterogeneous multiplication of matrices.

def mulLeftLinearMap {l : Type u_1} {m : Type u_2} (n : Type u_3) (R : Type u_5) {A : Type u_6} [Fintype m] [Semiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SMulCommClass R A A] (X : Matrix l m A) :
Matrix m n A →ₗ[R] Matrix l n A

A version of LinearMap.mulLeft for matrix multiplication.

Equations
    Instances For
      @[simp]
      theorem mulLeftLinearMap_apply {l : Type u_1} {m : Type u_2} (n : Type u_3) (R : Type u_5) {A : Type u_6} [Fintype m] [Semiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SMulCommClass R A A] (X : Matrix l m A) (x✝ : Matrix m n A) :
      (mulLeftLinearMap n R X) x✝ = X * x✝
      @[simp]
      theorem mulLeftLinearMap_zero_eq_zero {l : Type u_1} {m : Type u_2} (n : Type u_3) (R : Type u_5) {A : Type u_6} [Fintype m] [Semiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SMulCommClass R A A] :

      A version of LinearMap.mulLeft_zero_eq_zero for matrix multiplication.

      def mulRightLinearMap (l : Type u_1) {m : Type u_2} {n : Type u_3} (R : Type u_5) {A : Type u_6} [Fintype m] [Semiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] (Y : Matrix m n A) :
      Matrix l m A →ₗ[R] Matrix l n A

      A version of LinearMap.mulRight for matrix multiplication.

      Equations
        Instances For
          @[simp]
          theorem mulRightLinearMap_apply (l : Type u_1) {m : Type u_2} {n : Type u_3} (R : Type u_5) {A : Type u_6} [Fintype m] [Semiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] (Y : Matrix m n A) (x✝ : Matrix l m A) :
          (mulRightLinearMap l R Y) x✝ = x✝ * Y
          @[simp]
          theorem mulRightLinearMap_zero_eq_zero (l : Type u_1) {m : Type u_2} {n : Type u_3} (R : Type u_5) {A : Type u_6} [Fintype m] [Semiring R] [NonUnitalNonAssocSemiring A] [Module R A] [IsScalarTower R A A] :

          A version of LinearMap.mulLeft_zero_eq_zero for matrix multiplication.

          def mulLinearMap {l : Type u_1} {m : Type u_2} {n : Type u_3} (R : Type u_5) {A : Type u_6} [Fintype m] [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] :
          Matrix l m A →ₗ[R] Matrix m n A →ₗ[R] Matrix l n A

          A version of LinearMap.mul for matrix multiplication.

          Equations
            Instances For
              @[simp]
              theorem mulLinearMap_apply_apply {l : Type u_1} {m : Type u_2} {n : Type u_3} (R : Type u_5) {A : Type u_6} [Fintype m] [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] (X : Matrix l m A) (x✝ : Matrix m n A) :
              ((mulLinearMap R) X) x✝ = X * x✝
              theorem mulLinearMap_eq_mul {m : Type u_2} (R : Type u_5) {A : Type u_6} [Fintype m] [CommSemiring R] [NonUnitalNonAssocSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] :

              On square matrices, Matrix.mulLinearMap and LinearMap.mul coincide.

              @[simp]
              theorem mulLeftLinearMap_mul {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {R : Type u_5} {A : Type u_6} [Fintype m] [Fintype n] [Semiring R] [NonUnitalSemiring A] [Module R A] [SMulCommClass R A A] (a : Matrix l m A) (b : Matrix m n A) :

              A version of LinearMap.mulLeft_mul for matrix multiplication.

              @[simp]
              theorem mulRightLinearMap_mul {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {R : Type u_5} {A : Type u_6} [Fintype m] [Fintype n] [Semiring R] [NonUnitalSemiring A] [Module R A] [IsScalarTower R A A] (a : Matrix m n A) (b : Matrix n o A) :

              A version of LinearMap.mulRight_mul for matrix multiplication.

              theorem commute_mulLeftLinearMap_mulRightLinearMap {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {R : Type u_5} {A : Type u_6} [Fintype m] [Fintype n] [CommSemiring R] [NonUnitalSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] (a : Matrix l m A) (b : Matrix n o A) :

              A version of LinearMap.commute_mulLeft_right for matrix multiplication.

              @[simp]
              theorem mulLeftLinearMap_one {m : Type u_2} {n : Type u_3} {R : Type u_5} {A : Type u_6} [Fintype m] [DecidableEq m] [Semiring R] [Semiring A] [Module R A] [SMulCommClass R A A] :

              A version of LinearMap.mulLeft_one for matrix multiplication.

              @[simp]
              theorem mulLeftLinearMap_eq_zero_iff {l : Type u_1} {m : Type u_2} {n : Type u_3} {R : Type u_5} {A : Type u_6} [Fintype m] [Semiring R] [Semiring A] [Module R A] [SMulCommClass R A A] [Nonempty n] (a : Matrix l m A) :
              mulLeftLinearMap n R a = 0 a = 0

              A version of LinearMap.mulLeft_eq_zero_iff for matrix multiplication.

              @[simp]
              theorem pow_mulLeftLinearMap {m : Type u_2} {n : Type u_3} {R : Type u_5} {A : Type u_6} [Fintype m] [DecidableEq m] [Semiring R] [Semiring A] [Module R A] [SMulCommClass R A A] (a : Matrix m m A) (k : ) :

              A version of LinearMap.pow_mulLeft for matrix multiplication.

              @[simp]
              theorem mulRightLinearMap_one {l : Type u_1} {m : Type u_2} {R : Type u_5} {A : Type u_6} [Fintype m] [DecidableEq m] [Semiring R] [Semiring A] [Module R A] [IsScalarTower R A A] :

              A version of LinearMap.mulRight_one for matrix multiplication.

              @[simp]
              theorem mulRightLinearMap_eq_zero_iff {l : Type u_1} {m : Type u_2} {n : Type u_3} {R : Type u_5} {A : Type u_6} [Fintype m] [Semiring R] [Semiring A] [Module R A] [IsScalarTower R A A] (a : Matrix m n A) [Nonempty l] :
              mulRightLinearMap l R a = 0 a = 0

              A version of LinearMap.mulRight_eq_zero_iff for matrix multiplication.

              @[simp]
              theorem pow_mulRightLinearMap {l : Type u_1} {m : Type u_2} {R : Type u_5} {A : Type u_6} [Fintype m] [DecidableEq m] [Semiring R] [Semiring A] [Module R A] [IsScalarTower R A A] (a : Matrix m m A) (k : ) :

              A version of LinearMap.pow_mulRight for matrix multiplication.