The assignment tester, assembled #
The six checks of the Hadamard assignment tester, run on one bundled random string, on raw tables, with a universal soundness constant.
The tester is handed two input tables Tt Th : Cube B → ZMod 2 — in the
composition, the Hadamard encodings of the labels at the two ends of an outer
edge — and a proof consisting of a linear table F over n variables and
a quadratic table G over n * n, where the n variables are the 2 · 2^B
input coordinates followed by the selectors of a one-hot system. Its random
string has six blocks, one per check:
- linearity of
F; 2. linearity ofG; 3. consistency ofGwithF; - the one-hot system, by a random linear combination; 5. and 6. the two input tables, one coordinate each.
Every check reads a constant number of positions — never a whole table — so
the total query count is a constant independent of B, and the soundness
constant 1/32 is universal. That independence is the point of the tester:
the outer alphabet may be enormous, and neither the query count nor the
soundness loss may notice.
Main definitions #
Complexity.Tester.AllChecks— the tester's verdict on a random string
Main results #
Complexity.Tester.sound— passing with probability above31/32yields an assignment satisfying the system whose input parts are within3/32of the input tablesComplexity.Tester.complete— the honest proof of a satisfying assignment passes on every random string
Layout #
The number of input variables: two tables of 2^B coordinates.
Equations
- Complexity.Tester.kOf B = 2 ^ B + 2 ^ B
Instances For
The number of variables: input coordinates and one-hot selectors.
Equations
Instances For
The number of constraints in the one-hot system.
Equations
Instances For
The variable holding coordinate r of the first input table.
Equations
- Complexity.Tester.inTail B r = Fin.castAdd (2 ^ Complexity.Tester.kOf B) (Fin.castAdd (2 ^ B) ((Complexity.candIdx B) r))
Instances For
The variable holding coordinate r of the second input table.
Equations
- Complexity.Tester.inHead B r = Fin.castAdd (2 ^ Complexity.Tester.kOf B) (Fin.natAdd (2 ^ B) ((Complexity.candIdx B) r))
Instances For
The first input table an assignment of the variables carries.
Equations
- Complexity.Tester.tailPart a r = a (Complexity.Tester.inTail B r)
Instances For
The second input table an assignment of the variables carries.
Equations
- Complexity.Tester.headPart a r = a (Complexity.Tester.inHead B r)
Instances For
The random bits of the linearity check on F.
Equations
Instances For
The random bits of the linearity check on G.
Equations
Instances For
The random bits of the consistency check.
Equations
Instances For
The random bits of the constraint check.
Equations
Instances For
The random bits of one input check.
Equations
Instances For
The random bits of the last two blocks.
Equations
Instances For
The random bits of the last three blocks.
Equations
Instances For
The random bits of the last four blocks.
Equations
Instances For
The random bits after the first block.
Equations
Instances For
The total number of random bits.
Equations
Instances For
The first block of the random string: linearity of F.
Equations
Instances For
The second block: linearity of G.
Equations
Instances For
The third block: consistency.
Equations
Instances For
The fourth block: the constraint system.
Equations
Instances For
The fifth block: the first input table.
Equations
Instances For
The sixth block: the second input table.
Equations
Instances For
Each block is uniform #
The checks #
The linearity check on a table, reading at the two halves of the block and their sum.
Equations
- Complexity.Tester.LinCheck f x = (f (Complexity.leftBlock x) * f (Complexity.rightBlock x) = f (Complexity.leftBlock x + Complexity.rightBlock x))
Instances For
The tester's verdict: all six checks pass on the random string.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Soundness #
Soundness of the assembled tester. If the six checks all pass with
probability above 31/32, the proof decodes to an assignment of the variables
that satisfies the one-hot system and whose two input parts are within 3/32
of the input tables.
Completeness #
The honest tables pass the constraint check on every random string.
Completeness of the assembled tester. The honest proof of an assignment satisfying the system — its Hadamard encoding and that of its tensor square, with the input tables read off the assignment — passes every check on every random string.