theorem
HexMatrixTheory.row_length
{n m : ℕ}
{rows : List (List ℤ)}
(h : Hex.Matrix.Lists.shape n m rows = true)
(i : Fin n)
:
theorem
HexMatrixTheory.mul_of_product
{n k m : ℕ}
{a b : List (List ℤ)}
{c : ℕ → ℕ → ℤ}
(ha : Hex.Matrix.Lists.shape n k a = true)
(hc : Hex.Matrix.Lists.product n m a b c = true)
:
Accepted list products give mathematical matrix products; decoding is used only by this theorem, outside the Boolean reduction path.
Decode lists to the executable matrix representation for reference certificate soundness. This definition is never reduced by a checker.
Equations
- HexMatrixTheory.matrixOfLists n m rows = HexMatrixTheory.matrixEquiv.symm (HexMatrixTheory.ofLists n m rows)
Instances For
@[simp]
theorem
HexMatrixTheory.matrix_mul_of_product
{n k m : ℕ}
{a b d : List (List ℤ)}
(ha : Hex.Matrix.Lists.shape n k a = true)
(h : Hex.Matrix.Lists.product n m a b (Hex.Matrix.Lists.get d) = true)
:
theorem
HexMatrixTheory.matrix_inverse_of_product
{n : ℕ}
{a b : List (List ℤ)}
(ha : Hex.Matrix.Lists.shape n n a = true)
(h : Hex.Matrix.Lists.product n n a b Hex.Matrix.Lists.identity = true)
: