The remaining checks of the assignment tester #
HadamardTester proves the linearity and consistency checks. Two more are
needed for the tester to plug into Dinur's composition, and both are analysed
here on raw tables, over bundled randomness, in the same style.
The constraint check on a system. The constraint is a system of quadratic equations (the one-hot arithmetization of
Arithmetize), checked by one random linear combination. Passing on more than half of the coefficient vectors — after paying for the reads — forces every equation to hold on the decoded tables.The input check, one coordinate at a time. The tester is handed its input as a table it may read at a single random coordinate, and compares that bit with the corresponding coordinate of its decoded assignment, obtained by self-correction at a basis vector. Passing often means the input table is close to the decoded assignment's input part — not equal, which a single read could never certify, but close enough that, when the input is supposed to be a Hadamard codeword, it decodes uniquely.
The last point is what makes the composition work with constantly many queries: the outer graph's labels are handed to the tester as Hadamard codewords, and a wrong label is far from every right one.
Main results #
Complexity.forall_checkValue_of_prob_combined— the random-combination constraint checkComplexity.prob_coord_eq_ge— the single-coordinate input checkComplexity.decodeLabel_eq— a table close to a codeword decodes to it
The constraint check on a system #
The random-combination constraint check. Reading the combined constraint off the raw tables passes often enough only if every constraint of the system holds on the decoded tables. The coefficient vector is the first block, the correction strings the second.
The input check, one coordinate at a time #
The single-coordinate input check, on the raw table: a random
coordinate r (first block) of the input table w is compared with the
decoded assignment's bit at variable idx r, read by self-correction at the
basis vector (correction string: second block).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Passing the coordinate check means agreeing on most coordinates.
The honest table passes the coordinate check everywhere, when the input table is the decoded assignment's input part.
Decoding a label from a table #
The distance between two bit tables: the fraction of coordinates where they differ.
Equations
- Complexity.bitDist s t = Complexity.BooleanAnalysis.prob fun (r : Complexity.BooleanAnalysis.Cube m) => s r ≠ t r
Instances For
Distinct codewords are far apart: at distance exactly one half.
Decoding: the label whose codeword is within a quarter of the table, if any; an arbitrary label otherwise.
Equations
- Complexity.decodeLabel enc t = if h : ∃ (σ : β), Complexity.bitDist t (Complexity.hadamard (enc σ)) < 1 / 4 then Classical.choose h else Classical.arbitrary β
Instances For
A table close to a codeword decodes to its label.