Documentation

Mathlib.Data.Matrix.RowCol

Row and column matrices #

This file provides results about row and column matrices.

Main definitions #

def Matrix.replicateCol {m : Type u_2} {α : Type v} (ι : Type u_6) (w : mα) :
Matrix m ι α

Matrix.replicateCol ι u is the matrix with all columns equal to the vector u.

To get a column matrix with exactly one column, Matrix.replicateCol (Fin 1) u is the canonical choice.

Equations
Instances For
    @[deprecated Matrix.replicateCol (since := "2025-03-20")]
    def Matrix.col {m : Type u_2} {α : Type v} (ι : Type u_6) (w : mα) :
    Matrix m ι α

    Alias of Matrix.replicateCol.


    Matrix.replicateCol ι u is the matrix with all columns equal to the vector u.

    To get a column matrix with exactly one column, Matrix.replicateCol (Fin 1) u is the canonical choice.

    Equations
    Instances For
      @[simp]
      theorem Matrix.replicateCol_apply {m : Type u_2} {α : Type v} {ι : Type u_6} (w : mα) (i : m) (j : ι) :
      replicateCol ι w i j = w i
      @[deprecated Matrix.replicateCol_apply (since := "2025-03-20")]
      theorem Matrix.col_apply {m : Type u_2} {α : Type v} {ι : Type u_6} (w : mα) (i : m) (j : ι) :
      replicateCol ι w i j = w i

      Alias of Matrix.replicateCol_apply.

      def Matrix.replicateRow {n : Type u_3} {α : Type v} (ι : Type u_6) (v : nα) :
      Matrix ι n α

      Matrix.replicateRow ι u is the matrix with all rows equal to the vector u.

      To get a row matrix with exactly one row, Matrix.replicateRow (Fin 1) u is the canonical choice.

      Equations
      Instances For
        @[deprecated Matrix.replicateRow (since := "2025-03-20")]
        def Matrix.row {n : Type u_3} {α : Type v} (ι : Type u_6) (v : nα) :
        Matrix ι n α

        Alias of Matrix.replicateRow.


        Matrix.replicateRow ι u is the matrix with all rows equal to the vector u.

        To get a row matrix with exactly one row, Matrix.replicateRow (Fin 1) u is the canonical choice.

        Equations
        Instances For
          @[simp]
          theorem Matrix.replicateRow_apply {n : Type u_3} {α : Type v} {ι : Type u_6} (v : nα) (i : ι) (j : n) :
          replicateRow ι v i j = v j
          @[deprecated Matrix.replicateRow_apply (since := "2025-03-20")]
          theorem Matrix.row_apply {n : Type u_3} {α : Type v} {ι : Type u_6} (v : nα) (i : ι) (j : n) :
          replicateRow ι v i j = v j

          Alias of Matrix.replicateRow_apply.

          @[deprecated Matrix.replicateCol_injective (since := "2025-03-20")]
          theorem Matrix.col_injective {m : Type u_2} {α : Type v} {ι : Type u_6} [Nonempty ι] :

          Alias of Matrix.replicateCol_injective.

          @[simp]
          theorem Matrix.replicateCol_inj {m : Type u_2} {α : Type v} {ι : Type u_6} [Nonempty ι] {v w : mα} :
          @[deprecated Matrix.replicateCol_inj (since := "2025-03-20")]
          theorem Matrix.col_inj {m : Type u_2} {α : Type v} {ι : Type u_6} [Nonempty ι] {v w : mα} :

          Alias of Matrix.replicateCol_inj.

          @[simp]
          theorem Matrix.replicateCol_zero {m : Type u_2} {α : Type v} {ι : Type u_6} [Zero α] :
          @[deprecated Matrix.replicateCol_zero (since := "2025-03-20")]
          theorem Matrix.col_zero {m : Type u_2} {α : Type v} {ι : Type u_6} [Zero α] :

          Alias of Matrix.replicateCol_zero.

          @[simp]
          theorem Matrix.replicateCol_eq_zero {m : Type u_2} {α : Type v} {ι : Type u_6} [Zero α] [Nonempty ι] (v : mα) :
          replicateCol ι v = 0 v = 0
          @[deprecated Matrix.replicateCol_eq_zero (since := "2025-03-20")]
          theorem Matrix.col_eq_zero {m : Type u_2} {α : Type v} {ι : Type u_6} [Zero α] [Nonempty ι] (v : mα) :
          replicateCol ι v = 0 v = 0

          Alias of Matrix.replicateCol_eq_zero.

          @[simp]
          theorem Matrix.replicateCol_add {m : Type u_2} {α : Type v} {ι : Type u_6} [Add α] (v w : mα) :
          @[deprecated Matrix.replicateCol_add (since := "2025-03-20")]
          theorem Matrix.col_add {m : Type u_2} {α : Type v} {ι : Type u_6} [Add α] (v w : mα) :

          Alias of Matrix.replicateCol_add.

          @[simp]
          theorem Matrix.replicateCol_smul {m : Type u_2} {R : Type u_5} {α : Type v} {ι : Type u_6} [SMul R α] (x : R) (v : mα) :
          @[deprecated Matrix.replicateCol_smul (since := "2025-03-20")]
          theorem Matrix.col_smul {m : Type u_2} {R : Type u_5} {α : Type v} {ι : Type u_6} [SMul R α] (x : R) (v : mα) :

          Alias of Matrix.replicateCol_smul.

          @[deprecated Matrix.replicateRow_injective (since := "2025-03-20")]
          theorem Matrix.row_injective {n : Type u_3} {α : Type v} {ι : Type u_6} [Nonempty ι] :

          Alias of Matrix.replicateRow_injective.

          @[simp]
          theorem Matrix.replicateRow_inj {n : Type u_3} {α : Type v} {ι : Type u_6} [Nonempty ι] {v w : nα} :
          @[simp]
          theorem Matrix.replicateRow_zero {n : Type u_3} {α : Type v} {ι : Type u_6} [Zero α] :
          @[deprecated Matrix.replicateRow_zero (since := "2025-03-20")]
          theorem Matrix.row_zero {n : Type u_3} {α : Type v} {ι : Type u_6} [Zero α] :

          Alias of Matrix.replicateRow_zero.

          @[simp]
          theorem Matrix.replicateRow_eq_zero {n : Type u_3} {α : Type v} {ι : Type u_6} [Zero α] [Nonempty ι] (v : nα) :
          replicateRow ι v = 0 v = 0
          @[deprecated Matrix.replicateRow_eq_zero (since := "2025-03-20")]
          theorem Matrix.row_eq_zero {n : Type u_3} {α : Type v} {ι : Type u_6} [Zero α] [Nonempty ι] (v : nα) :
          replicateRow ι v = 0 v = 0

          Alias of Matrix.replicateRow_eq_zero.

          @[simp]
          theorem Matrix.replicateRow_add {m : Type u_2} {α : Type v} {ι : Type u_6} [Add α] (v w : mα) :
          @[deprecated Matrix.replicateRow_add (since := "2025-03-20")]
          theorem Matrix.row_add {m : Type u_2} {α : Type v} {ι : Type u_6} [Add α] (v w : mα) :

          Alias of Matrix.replicateRow_add.

          @[simp]
          theorem Matrix.replicateRow_smul {m : Type u_2} {R : Type u_5} {α : Type v} {ι : Type u_6} [SMul R α] (x : R) (v : mα) :
          @[deprecated Matrix.replicateRow_smul (since := "2025-03-20")]
          theorem Matrix.row_smul {m : Type u_2} {R : Type u_5} {α : Type v} {ι : Type u_6} [SMul R α] (x : R) (v : mα) :

          Alias of Matrix.replicateRow_smul.

          @[simp]
          theorem Matrix.transpose_replicateCol {m : Type u_2} {α : Type v} {ι : Type u_6} (v : mα) :
          @[deprecated Matrix.transpose_replicateCol (since := "2025-03-20")]
          theorem Matrix.transpose_col {m : Type u_2} {α : Type v} {ι : Type u_6} (v : mα) :

          Alias of Matrix.transpose_replicateCol.

          @[simp]
          theorem Matrix.transpose_replicateRow {m : Type u_2} {α : Type v} {ι : Type u_6} (v : mα) :
          @[deprecated Matrix.transpose_replicateRow (since := "2025-03-20")]
          theorem Matrix.transpose_row {m : Type u_2} {α : Type v} {ι : Type u_6} (v : mα) :

          Alias of Matrix.transpose_replicateRow.

          @[simp]
          theorem Matrix.conjTranspose_replicateCol {m : Type u_2} {α : Type v} {ι : Type u_6} [Star α] (v : mα) :
          @[deprecated Matrix.conjTranspose_replicateCol (since := "2025-03-20")]
          theorem Matrix.conjTranspose_col {m : Type u_2} {α : Type v} {ι : Type u_6} [Star α] (v : mα) :

          Alias of Matrix.conjTranspose_replicateCol.

          @[simp]
          theorem Matrix.conjTranspose_replicateRow {m : Type u_2} {α : Type v} {ι : Type u_6} [Star α] (v : mα) :
          @[deprecated Matrix.conjTranspose_replicateRow (since := "2025-03-20")]
          theorem Matrix.conjTranspose_row {m : Type u_2} {α : Type v} {ι : Type u_6} [Star α] (v : mα) :

          Alias of Matrix.conjTranspose_replicateRow.

          theorem Matrix.replicateRow_vecMul {m : Type u_2} {n : Type u_3} {α : Type v} {ι : Type u_6} [Fintype m] [NonUnitalNonAssocSemiring α] (M : Matrix m n α) (v : mα) :
          @[deprecated Matrix.replicateRow_vecMul (since := "2025-03-20")]
          theorem Matrix.row_vecMul {m : Type u_2} {n : Type u_3} {α : Type v} {ι : Type u_6} [Fintype m] [NonUnitalNonAssocSemiring α] (M : Matrix m n α) (v : mα) :

          Alias of Matrix.replicateRow_vecMul.

          theorem Matrix.replicateCol_vecMul {m : Type u_2} {n : Type u_3} {α : Type v} {ι : Type u_6} [Fintype m] [NonUnitalNonAssocSemiring α] (M : Matrix m n α) (v : mα) :
          @[deprecated Matrix.replicateCol_vecMul (since := "2025-03-20")]
          theorem Matrix.col_vecMul {m : Type u_2} {n : Type u_3} {α : Type v} {ι : Type u_6} [Fintype m] [NonUnitalNonAssocSemiring α] (M : Matrix m n α) (v : mα) :

          Alias of Matrix.replicateCol_vecMul.

          theorem Matrix.replicateCol_mulVec {m : Type u_2} {n : Type u_3} {α : Type v} {ι : Type u_6} [Fintype n] [NonUnitalNonAssocSemiring α] (M : Matrix m n α) (v : nα) :
          @[deprecated Matrix.replicateCol_mulVec (since := "2025-03-20")]
          theorem Matrix.col_mulVec {m : Type u_2} {n : Type u_3} {α : Type v} {ι : Type u_6} [Fintype n] [NonUnitalNonAssocSemiring α] (M : Matrix m n α) (v : nα) :

          Alias of Matrix.replicateCol_mulVec.

          theorem Matrix.replicateRow_mulVec {m : Type u_2} {n : Type u_3} {α : Type v} {ι : Type u_6} [Fintype n] [NonUnitalNonAssocSemiring α] (M : Matrix m n α) (v : nα) :
          @[deprecated Matrix.replicateRow_mulVec (since := "2025-03-20")]
          theorem Matrix.row_mulVec {m : Type u_2} {n : Type u_3} {α : Type v} {ι : Type u_6} [Fintype n] [NonUnitalNonAssocSemiring α] (M : Matrix m n α) (v : nα) :

          Alias of Matrix.replicateRow_mulVec.

          theorem Matrix.replicateRow_mulVec_eq_const {m : Type u_2} {α : Type v} {ι : Type u_6} [Fintype m] [NonUnitalNonAssocSemiring α] (v w : mα) :
          @[deprecated Matrix.replicateRow_mulVec_eq_const (since := "2025-03-20")]
          theorem Matrix.row_mulVec_eq_const {m : Type u_2} {α : Type v} {ι : Type u_6} [Fintype m] [NonUnitalNonAssocSemiring α] (v w : mα) :

          Alias of Matrix.replicateRow_mulVec_eq_const.

          theorem Matrix.mulVec_replicateCol_eq_const {m : Type u_2} {α : Type v} {ι : Type u_6} [Fintype m] [NonUnitalNonAssocSemiring α] (v w : mα) :
          @[deprecated Matrix.mulVec_replicateCol_eq_const (since := "2025-03-20")]
          theorem Matrix.mulVec_col_eq_const {m : Type u_2} {α : Type v} {ι : Type u_6} [Fintype m] [NonUnitalNonAssocSemiring α] (v w : mα) :

          Alias of Matrix.mulVec_replicateCol_eq_const.

          theorem Matrix.replicateRow_mul_replicateCol {m : Type u_2} {α : Type v} {ι : Type u_6} [Fintype m] [Mul α] [AddCommMonoid α] (v w : mα) :
          replicateRow ι v * replicateCol ι w = of fun (x x : ι) => v ⬝ᵥ w
          @[deprecated Matrix.replicateRow_mul_replicateCol (since := "2025-03-20")]
          theorem Matrix.row_mul_col {m : Type u_2} {α : Type v} {ι : Type u_6} [Fintype m] [Mul α] [AddCommMonoid α] (v w : mα) :
          replicateRow ι v * replicateCol ι w = of fun (x x : ι) => v ⬝ᵥ w

          Alias of Matrix.replicateRow_mul_replicateCol.

          @[simp]
          theorem Matrix.replicateRow_mul_replicateCol_apply {m : Type u_2} {α : Type v} {ι : Type u_6} [Fintype m] [Mul α] [AddCommMonoid α] (v w : mα) (i j : ι) :
          (replicateRow ι v * replicateCol ι w) i j = v ⬝ᵥ w
          @[deprecated Matrix.replicateRow_mul_replicateCol_apply (since := "2025-03-20")]
          theorem Matrix.row_mul_col_apply {m : Type u_2} {α : Type v} {ι : Type u_6} [Fintype m] [Mul α] [AddCommMonoid α] (v w : mα) (i j : ι) :
          (replicateRow ι v * replicateCol ι w) i j = v ⬝ᵥ w

          Alias of Matrix.replicateRow_mul_replicateCol_apply.

          @[simp]
          theorem Matrix.diag_replicateCol_mul_replicateRow {n : Type u_3} {α : Type v} {ι : Type u_6} [Mul α] [AddCommMonoid α] [Unique ι] (a b : nα) :
          (replicateCol ι a * replicateRow ι b).diag = a * b
          @[deprecated Matrix.diag_replicateCol_mul_replicateRow (since := "2025-03-20")]
          theorem Matrix.diag_col_mul_row {n : Type u_3} {α : Type v} {ι : Type u_6} [Mul α] [AddCommMonoid α] [Unique ι] (a b : nα) :
          (replicateCol ι a * replicateRow ι b).diag = a * b

          Alias of Matrix.diag_replicateCol_mul_replicateRow.

          theorem Matrix.vecMulVec_eq {m : Type u_2} {n : Type u_3} {α : Type v} (ι : Type u_6) [Mul α] [AddCommMonoid α] [Unique ι] (w : mα) (v : nα) :

          Updating rows and columns #

          def Matrix.updateRow {m : Type u_2} {n : Type u_3} {α : Type v} [DecidableEq m] (M : Matrix m n α) (i : m) (b : nα) :
          Matrix m n α

          Update, i.e. replace the ith row of matrix A with the values in b.

          Equations
          Instances For
            def Matrix.updateCol {m : Type u_2} {n : Type u_3} {α : Type v} [DecidableEq n] (M : Matrix m n α) (j : n) (b : mα) :
            Matrix m n α

            Update, i.e. replace the jth column of matrix A with the values in b.

            Equations
            Instances For
              @[deprecated Matrix.updateCol (since := "2024-12-11")]
              def Matrix.updateColumn {m : Type u_2} {n : Type u_3} {α : Type v} [DecidableEq n] (M : Matrix m n α) (j : n) (b : mα) :
              Matrix m n α

              Alias of Matrix.updateCol.


              Update, i.e. replace the jth column of matrix A with the values in b.

              Equations
              Instances For
                @[simp]
                theorem Matrix.updateRow_self {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {b : nα} [DecidableEq m] :
                M.updateRow i b i = b
                @[simp]
                theorem Matrix.updateCol_self {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {j : n} {c : mα} [DecidableEq n] :
                M.updateCol j c i j = c i
                @[deprecated Matrix.updateCol_self (since := "2024-12-11")]
                theorem Matrix.updateColumn_self {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {j : n} {c : mα} [DecidableEq n] :
                M.updateCol j c i j = c i

                Alias of Matrix.updateCol_self.

                @[simp]
                theorem Matrix.updateRow_ne {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {b : nα} [DecidableEq m] {i' : m} (i_ne : i' i) :
                M.updateRow i b i' = M i'
                @[simp]
                theorem Matrix.updateCol_ne {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {j : n} {c : mα} [DecidableEq n] {j' : n} (j_ne : j' j) :
                M.updateCol j c i j' = M i j'
                @[deprecated Matrix.updateCol_ne (since := "2024-12-11")]
                theorem Matrix.updateColumn_ne {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {j : n} {c : mα} [DecidableEq n] {j' : n} (j_ne : j' j) :
                M.updateCol j c i j' = M i j'

                Alias of Matrix.updateCol_ne.

                theorem Matrix.updateRow_apply {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {j : n} {b : nα} [DecidableEq m] {i' : m} :
                M.updateRow i b i' j = if i' = i then b j else M i' j
                theorem Matrix.updateCol_apply {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {j : n} {c : mα} [DecidableEq n] {j' : n} :
                M.updateCol j c i j' = if j' = j then c i else M i j'
                @[deprecated Matrix.updateCol_apply (since := "2024-12-11")]
                theorem Matrix.updateColumn_apply {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {j : n} {c : mα} [DecidableEq n] {j' : n} :
                M.updateCol j c i j' = if j' = j then c i else M i j'

                Alias of Matrix.updateCol_apply.

                @[simp]
                theorem Matrix.updateCol_subsingleton {m : Type u_2} {n : Type u_3} {R : Type u_5} [Subsingleton n] (A : Matrix m n R) (i : n) (b : mR) :
                @[deprecated Matrix.updateCol_subsingleton (since := "2024-12-11")]
                theorem Matrix.updateColumn_subsingleton {m : Type u_2} {n : Type u_3} {R : Type u_5} [Subsingleton n] (A : Matrix m n R) (i : n) (b : mR) :

                Alias of Matrix.updateCol_subsingleton.

                @[simp]
                theorem Matrix.updateRow_subsingleton {m : Type u_2} {n : Type u_3} {R : Type u_5} [Subsingleton m] (A : Matrix m n R) (i : m) (b : nR) :
                theorem Matrix.map_updateRow {m : Type u_2} {n : Type u_3} {α : Type v} {β : Type w} {M : Matrix m n α} {i : m} {b : nα} [DecidableEq m] (f : αβ) :
                (M.updateRow i b).map f = (M.map f).updateRow i (f b)
                theorem Matrix.map_updateCol {m : Type u_2} {n : Type u_3} {α : Type v} {β : Type w} {M : Matrix m n α} {j : n} {c : mα} [DecidableEq n] (f : αβ) :
                (M.updateCol j c).map f = (M.map f).updateCol j (f c)
                @[deprecated Matrix.map_updateCol (since := "2024-12-11")]
                theorem Matrix.map_updateColumn {m : Type u_2} {n : Type u_3} {α : Type v} {β : Type w} {M : Matrix m n α} {j : n} {c : mα} [DecidableEq n] (f : αβ) :
                (M.updateCol j c).map f = (M.map f).updateCol j (f c)

                Alias of Matrix.map_updateCol.

                theorem Matrix.updateRow_transpose {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {j : n} {c : mα} [DecidableEq n] :
                theorem Matrix.updateCol_transpose {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {b : nα} [DecidableEq m] :
                @[deprecated Matrix.updateCol_transpose (since := "2024-12-11")]
                theorem Matrix.updateColumn_transpose {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {b : nα} [DecidableEq m] :

                Alias of Matrix.updateCol_transpose.

                theorem Matrix.updateRow_conjTranspose {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {j : n} {c : mα} [DecidableEq n] [Star α] :
                theorem Matrix.updateCol_conjTranspose {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {b : nα} [DecidableEq m] [Star α] :
                @[deprecated Matrix.updateCol_conjTranspose (since := "2024-12-11")]
                theorem Matrix.updateColumn_conjTranspose {m : Type u_2} {n : Type u_3} {α : Type v} {M : Matrix m n α} {i : m} {b : nα} [DecidableEq m] [Star α] :

                Alias of Matrix.updateCol_conjTranspose.

                @[simp]
                theorem Matrix.updateRow_eq_self {m : Type u_2} {n : Type u_3} {α : Type v} [DecidableEq m] (A : Matrix m n α) (i : m) :
                A.updateRow i (A i) = A
                @[simp]
                theorem Matrix.updateCol_eq_self {m : Type u_2} {n : Type u_3} {α : Type v} [DecidableEq n] (A : Matrix m n α) (i : n) :
                (A.updateCol i fun (j : m) => A j i) = A
                @[deprecated Matrix.updateCol_eq_self (since := "2024-12-11")]
                theorem Matrix.updateColumn_eq_self {m : Type u_2} {n : Type u_3} {α : Type v} [DecidableEq n] (A : Matrix m n α) (i : n) :
                (A.updateCol i fun (j : m) => A j i) = A

                Alias of Matrix.updateCol_eq_self.

                theorem Matrix.diagonal_updateCol_single {n : Type u_3} {α : Type v} [DecidableEq n] [Zero α] (v : nα) (i : n) (x : α) :
                @[deprecated Matrix.diagonal_updateCol_single (since := "2024-12-11")]
                theorem Matrix.diagonal_updateColumn_single {n : Type u_3} {α : Type v} [DecidableEq n] [Zero α] (v : nα) (i : n) (x : α) :

                Alias of Matrix.diagonal_updateCol_single.

                theorem Matrix.diagonal_updateRow_single {n : Type u_3} {α : Type v} [DecidableEq n] [Zero α] (v : nα) (i : n) (x : α) :

                Updating rows and columns commutes in the obvious way with reindexing the matrix.

                theorem Matrix.updateRow_submatrix_equiv {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq l] [DecidableEq m] (A : Matrix m n α) (i : l) (r : oα) (e : l m) (f : o n) :
                (A.submatrix e f).updateRow i r = (A.updateRow (e i) fun (j : n) => r (f.symm j)).submatrix e f
                theorem Matrix.submatrix_updateRow_equiv {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq l] [DecidableEq m] (A : Matrix m n α) (i : m) (r : nα) (e : l m) (f : o n) :
                (A.updateRow i r).submatrix e f = (A.submatrix e f).updateRow (e.symm i) fun (i : o) => r (f i)
                theorem Matrix.updateCol_submatrix_equiv {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : o) (c : lα) (e : l m) (f : o n) :
                (A.submatrix e f).updateCol j c = (A.updateCol (f j) fun (i : m) => c (e.symm i)).submatrix e f
                @[deprecated Matrix.updateCol_submatrix_equiv (since := "2024-12-11")]
                theorem Matrix.updateColumn_submatrix_equiv {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : o) (c : lα) (e : l m) (f : o n) :
                (A.submatrix e f).updateCol j c = (A.updateCol (f j) fun (i : m) => c (e.symm i)).submatrix e f

                Alias of Matrix.updateCol_submatrix_equiv.

                theorem Matrix.submatrix_updateCol_equiv {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : n) (c : mα) (e : l m) (f : o n) :
                (A.updateCol j c).submatrix e f = (A.submatrix e f).updateCol (f.symm j) fun (i : l) => c (e i)
                @[deprecated Matrix.submatrix_updateCol_equiv (since := "2024-12-11")]
                theorem Matrix.submatrix_updateColumn_equiv {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : n) (c : mα) (e : l m) (f : o n) :
                (A.updateCol j c).submatrix e f = (A.submatrix e f).updateCol (f.symm j) fun (i : l) => c (e i)

                Alias of Matrix.submatrix_updateCol_equiv.

                reindex versions of the above submatrix lemmas for convenience.

                theorem Matrix.updateRow_reindex {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq l] [DecidableEq m] (A : Matrix m n α) (i : l) (r : oα) (e : m l) (f : n o) :
                ((reindex e f) A).updateRow i r = (reindex e f) (A.updateRow (e.symm i) fun (j : n) => r (f j))
                theorem Matrix.reindex_updateRow {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq l] [DecidableEq m] (A : Matrix m n α) (i : m) (r : nα) (e : m l) (f : n o) :
                (reindex e f) (A.updateRow i r) = ((reindex e f) A).updateRow (e i) fun (i : o) => r (f.symm i)
                theorem Matrix.updateCol_reindex {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : o) (c : lα) (e : m l) (f : n o) :
                ((reindex e f) A).updateCol j c = (reindex e f) (A.updateCol (f.symm j) fun (i : m) => c (e i))
                @[deprecated Matrix.updateCol_reindex (since := "2024-12-11")]
                theorem Matrix.updateColumn_reindex {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : o) (c : lα) (e : m l) (f : n o) :
                ((reindex e f) A).updateCol j c = (reindex e f) (A.updateCol (f.symm j) fun (i : m) => c (e i))

                Alias of Matrix.updateCol_reindex.

                theorem Matrix.reindex_updateCol {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : n) (c : mα) (e : m l) (f : n o) :
                (reindex e f) (A.updateCol j c) = ((reindex e f) A).updateCol (f j) fun (i : l) => c (e.symm i)
                @[deprecated Matrix.reindex_updateCol (since := "2024-12-11")]
                theorem Matrix.reindex_updateColumn {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : n) (c : mα) (e : m l) (f : n o) :
                (reindex e f) (A.updateCol j c) = ((reindex e f) A).updateCol (f j) fun (i : l) => c (e.symm i)

                Alias of Matrix.reindex_updateCol.