theorem
HexMatrixMathlib.triangularCheck_spec
(d : ℤ)
(done : List (List ℤ))
(i : ℕ)
(ts cs : List (List ℤ))
(pl pu : ℤ)
:
Hex.Matrix.DetWitness.triangularCheck d done i ts cs pl pu = true →
ts.length = cs.length ∧ (∀ k < ts.length,
(ts.getD k []).length = i + k + 1 ∧ Hex.Matrix.DetWitness.nthInt (ts.getD k []) (i + k) ≠ 0 ∧ (∀ c ∈ done, Hex.Matrix.DetWitness.dotInt (ts.getD k []) c = 0) ∧ ∀ k' < k, Hex.Matrix.DetWitness.dotInt (ts.getD k []) (cs.getD k' []) = 0) ∧ pl * (List.ofFn fun (k : Fin ts.length) => Hex.Matrix.DetWitness.nthInt (ts.getD ↑k []) (i + ↑k)).prod * d = pu * (List.ofFn fun (k : Fin ts.length) => Hex.Matrix.DetWitness.dotInt (ts.getD ↑k []) (cs.getD ↑k [])).prod
theorem
HexMatrixMathlib.det_eq_of_checkList
(n : ℕ)
(L : List (List ℤ))
(c : Hex.Matrix.DetWitness)
(h : Hex.Matrix.checkDetList n L c = true)
:
A passing kernel check determines the determinant of the row list's matrix.
theorem
HexMatrixMathlib.det_eq_of_checkList'
{n : ℕ}
(A : Matrix (Fin n) (Fin n) ℤ)
(L : List (List ℤ))
(c : Hex.Matrix.DetWitness)
(hA : A = ofLists n n L)
(h : Hex.Matrix.checkDetList n L c = true)
:
det_eq_of_checkList for a matrix identified with its row list; the
tactic supplies hA by rfl for a vector chain.
theorem
HexMatrixMathlib.det_eq_of_checkRat
(n : ℕ)
(A : List (List ℚ))
(s : List ℕ)
(B : List (List ℤ))
(c : Hex.Matrix.DetWitness)
(v : ℚ)
(h : Hex.Matrix.checkDetRat n A s B c v = true)
:
A passing rational check determines the determinant of the rational row list's matrix.
theorem
HexMatrixMathlib.det_eq_of_checkRat'
{n : ℕ}
(A : Matrix (Fin n) (Fin n) ℚ)
(L : List (List ℚ))
(s : List ℕ)
(B : List (List ℤ))
(c : Hex.Matrix.DetWitness)
(v : ℚ)
(hA : A = ofLists n n L)
(h : Hex.Matrix.checkDetRat n L s B c v = true)
:
det_eq_of_checkRat for a matrix identified with its row list.