Uniform binary matrix inversion #
theorem
MIPRE.LowDegree.BinaryLinear.mul_inverseMatrix
{n : ℕ}
(A : Matrix (Fin n) (Fin n) (ZMod 2))
(hA : Function.Surjective A.mulVec)
:
For nonsingular matrices, the computed columns form a right inverse.
theorem
MIPRE.LowDegree.BinaryLinear.inverseMatrix_mul
{n : ℕ}
(A : Matrix (Fin n) (Fin n) (ZMod 2))
(hA : Function.Surjective A.mulVec)
:
Over the finite binary field the computed right inverse is also a left inverse.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One globally polynomial-time ambient program for binary matrix inversion. The dimension is explicit and unary; correctness requires a nonsingular matrix.
Equations
Instances For
theorem
MIPRE.LowDegree.BinaryLinear.inverseMatrixProg_correct
{n : ℕ}
(A : Matrix (Fin n) (Fin n) (ZMod 2))
(hA : Function.Surjective A.mulVec)
:
mulBits n (matrixBits A) (inverseMatrixProg.toFun (Cost.unary n, matrixBits A)) = identityBits n ∧ mulBits n (inverseMatrixProg.toFun (Cost.unary n, matrixBits A)) (matrixBits A) = identityBits n
The printed matrix passes both executable multiplication checks.