Words of the machine verifier for quantified Boolean formulas #
The machine realizing the verifier of Cslib.Complexity.QBFProtocol.verifyAt over ZMod p
represents ring elements by natural numbers below p, in unary, which is polynomial since p is
chosen of polynomial size. This file gives the arithmetic it performs and its words:
- the operations of the arithmetization modulo
p(Cslib.Complexity.QBFProtocol.subMod,Cslib.Complexity.QBFProtocol.connectiveMod,Cslib.Complexity.QBFProtocol.operatorMod) and Horner's rule modulop(Cslib.Complexity.QBFProtocol.hornerMod), which compute inZMod p; - points as lists of pairs of a variable and its value (
Cslib.Complexity.QBFProtocol.lookupPt,Cslib.Complexity.QBFProtocol.normPt,Cslib.Complexity.QBFProtocol.updatePt), which agree with the point of the protocol on the variables of a listxs(Cslib.Complexity.QBFProtocol.canonPt); - the decoding of a reply word as
D + 1rows ofwidth pbits, each read in binary modulop(Cslib.Complexity.QBFProtocol.decodeReply), and the encoding of a reply by the honest prover (Cslib.Complexity.QBFProtocol.encodeReply), which it inverts; - the samples, a uniform index in the dyadic range above
preduced modulop(Cslib.Complexity.QBFProtocol.sampleMod), which give every residue probability at most2 / p(Cslib.Complexity.QBFProtocol.eval_sampleMod_le) with a fixed number of fair coins.
All are polynomial-time in their unary or binary inputs.
Main definitions #
Cslib.Complexity.QBFProtocol.connectiveMod,Cslib.Complexity.QBFProtocol.operatorMod,Cslib.Complexity.QBFProtocol.hornerMod: arithmetic modulop.Cslib.Complexity.QBFProtocol.canonPt,Cslib.Complexity.QBFProtocol.updatePt,Cslib.Complexity.QBFProtocol.encPt: points and their encoding.Cslib.Complexity.QBFProtocol.decodeReply,Cslib.Complexity.QBFProtocol.encodeReply: replies.Cslib.Complexity.QBFProtocol.sampleMod: samples.
Main results #
Cslib.Complexity.QBFProtocol.natCast_operatorMod,Cslib.Complexity.QBFProtocol.natCast_hornerMod: the arithmetic computes inZMod p.Cslib.Complexity.QBFProtocol.updatePt_canonPt: updating a point.Cslib.Complexity.QBFProtocol.decodeReply_encodeReply: decoding inverts the honest encoding.Cslib.Complexity.QBFProtocol.eval_sampleMod_le: the samples are nearly uniform.
References #
Arithmetic modulo p #
The difference a - b modulo p.
Instances For
The value of a connective on residues modulo p.
Instances For
The value of an operator on residues modulo p.
Instances For
For p ≠ 0, operatorMod computes the operators of the arithmetization in ZMod p.
Points #
For p ≠ 0, setting the variable v to z in the point r on the variables of xs gives
the point Function.update r v z on the same variables.
Replies #
The number of bits of a residue modulo p in a reply.
Instances For
The number of bits of a reply that the verifier reads: D + 1 rows.
Instances For
Decoding inverts the honest encoding of at most D + 1 residues, padded with zeros.
Samples #
A uniform index in the dyadic range above p, reduced modulo p.
Instances For
Polynomial time #
The samples are strict PPT in a unary modulus.