Checking an encoded constraint graph with local proof queries #
One random word selects an edge by capped binary decoding. A valid index reads fixed-width blocks for the two endpoints and checks their decoded labels. Padding indices make dummy queries at zero and accept independently of their answers. Fixed answer-block lengths support independent repetition. The cap charges arbitrary malformed random words without constructing exponentially large unary indices. The alphabet decoder and block width are fixed before the runtime graph.
Main definitions #
Cslib.PCP.Encoded.Edge.proofQueries: the bit positions of the two endpoint blocks.Cslib.PCP.Encoded.Graph.edgeVerifier: the nonadaptive graph verifier.
Main results #
Cslib.PCP.Encoded.Graph.polyTime_edgeVerifier: complete cost certificates for the coin count, binary query indices, and verdict on arbitrary inputs.Cslib.PCP.Encoded.Graph.edgeVerifier_accepts: the exact constraint checked for every proof.Cslib.PCP.Encoded.Graph.accepts_proofOfLabels: a satisfying labelling gives a finite proof.
References #
A constraint check always requests two blocks of the declared width.
Reading the query list returns exactly the two endpoint bit blocks, including repeated bits.
A fixed finite decoder and a joint evaluator give an efficient verdict on arbitrary answers.
Edge selection charges the graph, the entire random word, and the bounded decoded index.
Every declared vertex recovers its original label from the packed proof.
The verdict checks the labels determined by the proof at the selected edge.
Queries use a declared vertex block or the dummy position zero.
A satisfying labelling gives a finite proof accepted on every random word.
All verifier functions are polynomial-time, including on random strings of the wrong length.