Executable binary vector and matrix arithmetic #
Canonical binary scalar coordinates.
Equations
- MIPRE.LowDegree.BinaryLinear.bit x = decide (x = 1)
Instances For
Equations
- MIPRE.LowDegree.BinaryLinear.vectorBits v = List.ofFn fun (i : Fin n) => MIPRE.LowDegree.BinaryLinear.bit (v i)
Instances For
Equations
- MIPRE.LowDegree.BinaryLinear.matrixBits A = List.ofFn fun (i : Fin m) => MIPRE.LowDegree.BinaryLinear.vectorBits (A i)
Instances For
Equations
Instances For
The raw parity circuit computes the exact binary dot product.
A matrix is represented by its rows.
Equations
- MIPRE.LowDegree.BinaryLinear.applyBits A v = List.map (fun (r : MIPRE.Cost.BitStr) => MIPRE.LowDegree.BinaryLinear.dotBits r v) A
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The parity dot product is one uniform ambient program.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
Binary matrix application is polynomial-time on arbitrary raw row lists.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
Coordinatewise XOR computes binary vector addition.
The number of columns is explicit; short raw rows are padded with zero.
Equations
- MIPRE.LowDegree.BinaryLinear.transposeBits n A = List.map (fun (j : ℕ) => List.map (fun (r : MIPRE.Cost.BitStr) => List.getD r j false) A) (List.range n)
Instances For
A rectangular matrix product with an explicit output width.
Equations
- MIPRE.LowDegree.BinaryLinear.mulBits n A B = List.map (fun (r : MIPRE.Cost.BitStr) => MIPRE.LowDegree.BinaryLinear.applyBits (MIPRE.LowDegree.BinaryLinear.transposeBits n B) r) A
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Transposition is polynomial-time in the rows and the unary column count.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
MIPRE.LowDegree.BinaryLinear.transposeBitsProg_apply
(u : Cost.Unary)
(A : List Cost.BitStr)
:
Matrix multiplication is globally polynomial-time in its raw inputs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]