Evaluating a faithfully ordered full Pauli answer #
The answer table is ordered by the little-endian binary rank of its Boolean cube argument. The evaluator scans only the supplied rows, so even a malformed short answer is processed in polynomial time. On a full canonical table it computes the low-degree encoding at an arbitrary field point.
The standard little-endian rank of a Boolean cube point.
Equations
Instances For
A faithful cube enumeration; finite choice is used only for its inverse.
Equations
Instances For
One supplied answer row, weighted by the indicator at its binary index.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.Introspection.FieldTableProgram.termProg_correct
(k : ℕ)
(hk : 1 ≤ k)
{m : ℕ}
(x : Fin m → (SAT.shoupBinField k hk).carrier)
(a : (SAT.shoupBinField k hk).carrier)
(i : Fin (2 ^ m))
:
termProg.toFun
(((SAT.shoupBinField k hk).toBits a, ↑i), Cost.unary k, List.ofFn fun (j : Fin m) => (SAT.shoupBinField k hk).toBits (x j)) = (SAT.shoupBinField k hk).toBits (a * LowDegree.indVec x ((cubeEnumeration m).symm i))
Width, evaluation point, and supplied answer rows. The range is bounded by the actual answer length, not by a binary size claimed in the answer.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MIPRE.Introspection.FieldTableProgram.tableProg_correct
(k : ℕ)
(hk : 1 ≤ k)
{m : ℕ}
(x : Fin m → (SAT.shoupBinField k hk).carrier)
(h : (Fin m → Bool) → (SAT.shoupBinField k hk).carrier)
:
tableProg.toFun
(Cost.unary k, List.ofFn fun (j : Fin m) => (SAT.shoupBinField k hk).toBits (x j), List.ofFn fun (i : Fin (2 ^ m)) => (SAT.shoupBinField k hk).toBits (h ((cubeEnumeration m).symm i))) = (SAT.shoupBinField k hk).toBits ((MvPolynomial.eval x) (LowDegree.ldEnc h))