theorem
Hex.Matrix.det_setRow_add
{R : Type u}
[Lean.Grind.CommRing R]
{n : Nat}
(M : Matrix R n n)
(dst : Fin n)
(v w : Vector R n)
:
Determinant linearity in one replaced row, additive form. The row mirror of
det_setCol_add, proved by transposing to the column law.
theorem
Hex.Matrix.det_setCol_sum_list
{R : Type u}
[Lean.Grind.CommRing R]
{n : Nat}
(M : Matrix R n n)
(dst : Fin n)
{β : Type v}
(xs : List β)
(coeff : β → R)
(source : β → Fin n → R)
:
Determinant linearity in one replaced column, finite-list form.
theorem
Hex.Matrix.det_setCol_sum_finRange
{R : Type u}
[Lean.Grind.CommRing R]
{n m : Nat}
(M : Matrix R n n)
(dst : Fin n)
(coeff : Fin m → R)
(source : Fin m → Fin n → R)
:
(M.setCol dst fun (r : Fin n) =>
List.foldl (fun (acc : R) (x : Fin m) => acc + coeff x * source x r) 0 (List.finRange m)).det = List.foldl (fun (acc : R) (x : Fin m) => acc + coeff x * (M.setCol dst (source x)).det) 0 (List.finRange m)
Determinant linearity in one replaced column, indexed by Fin m.
def
Hex.Matrix.columnSumMatrix
{R : Type u}
[Lean.Grind.CommRing R]
{n m : Nat}
(source coeff : Matrix R n m)
:
Matrix R n n
Square matrix whose j-th column is the finite linear combination of the
columns of source with coefficients from row j of coeff.
Equations
Instances For
theorem
Hex.Matrix.det_setCol_existing_col_eq_zero
{R : Type u}
[Lean.Grind.CommRing R]
{n : Nat}
(M : Matrix R n n)
(dst src : Fin n)
(hsrcdst : src ≠ dst)
:
Replacing a column by an already-present different column creates a duplicate column, so the determinant is zero.
theorem
Hex.Matrix.det_setCol_add_otherCols
{R : Type u}
[Lean.Grind.CommRing R]
{n : Nat}
(M : Matrix R n n)
(dst : Fin n)
(sources : List (Fin n))
(coeff : Fin n → R)
(hsrc : ∀ (s : Fin n), s ∈ sources → s ≠ dst)
:
Adding a finite linear combination of other columns of M to column dst
preserves the determinant. The sources are given as a list and each source is
required to differ from dst.