Module docstring
{"# Standard basis on matrices
Main results
Basis.matrix: extend a basis onMto the standard basis onMatrix n m M"}
{"# Standard basis on matrices
Basis.matrix: extend a basis on M to the standard basis on Matrix n m M
"}Basis.matrix
      definition
     (b : Basis ι R M) : Basis (m × n × ι) R (Matrix m n M)
        /-- The standard basis of `Matrix m n M` given a basis on `M`. -/
protected noncomputable def matrix (b : Basis ι R M) :
    Basis (m × n × ι) R (Matrix m n M) :=
  Basis.reindex (Pi.basis fun _ : m => Pi.basis fun _ : n => b)
    ((Equiv.sigmaEquivProd _ _).trans <| .prodCongr (.refl _) (Equiv.sigmaEquivProd _ _))
    |>.map (Matrix.ofLinearEquiv R)
        Basis.matrix_apply
      theorem
     (b : Basis ι R M) (i : m) (j : n) (k : ι) [DecidableEq m] [DecidableEq n] :
  b.matrix m n (i, j, k) = Matrix.stdBasisMatrix i j (b k)
        @[simp]
theorem matrix_apply (b : Basis ι R M) (i : m) (j : n) (k : ι) [DecidableEq m] [DecidableEq n] :
    b.matrix m n (i, j, k) = Matrix.stdBasisMatrix i j (b k) := by
  simp [Basis.matrix, Matrix.stdBasisMatrix_eq_of_single_single]
        Matrix.stdBasis
      definition
     : Basis (m × n) R (Matrix m n R)
        /-- The standard basis of `Matrix m n R`. -/
noncomputable def stdBasis : Basis (m × n) R (Matrix m n R) :=
  Basis.reindex (Pi.basis fun _ : m => Pi.basisFun R n) (Equiv.sigmaEquivProd _ _)
    |>.map (ofLinearEquiv R)
        Matrix.stdBasis_eq_stdBasisMatrix
      theorem
     (i : m) (j : n) [DecidableEq m] [DecidableEq n] : stdBasis R m n (i, j) = stdBasisMatrix i j (1 : R)
        theorem stdBasis_eq_stdBasisMatrix (i : m) (j : n) [DecidableEq m] [DecidableEq n] :
    stdBasis R m n (i, j) = stdBasisMatrix i j (1 : R) := by
  simp [stdBasis, stdBasisMatrix_eq_of_single_single]
        Module.Free.matrix
      instance
     {m n : Type*} [Finite m] [Finite n] : Module.Free R (Matrix m n M)
        /-- The module of finite matrices is free. -/
instance matrix {m n : Type*} [Finite m] [Finite n] : Module.Free R (Matrix m n M) :=
  Module.Free.pi R _