Documentation

CslibFrontier.Computability.Complexity.Classes.IP.TQBF.Verifier

The machine verifier for quantified Boolean formulas #

The verifier of the interactive proof for TQBF as a program with fair coins and word messages, realized by a strict oracle PPT machine (Cslib.Complexity.QBFProtocol.isOraclePPTOn_verifier). On a formula ψ it rejects when ψ has a free variable. Otherwise it computes the list xs of the variable components of all the tokens of ψ, with multiplicity and with 0 for the tokens without a variable (Cslib.Complexity.QBFProtocol.linVars), which contains every variable of ψ; the degree bound D = 2 * size ψ; and the greatest prime p at most 2 * B for B = 12 * size ψ ^ 2 * (size ψ + 1), found by trial division (Cslib.Complexity.QBFProtocol.modulus); by Bertrand's postulate B < p. It then runs a stack machine over the tokens of the arithmetization of ψ that linearizes the variables of xs after every quantifier (Cslib.Complexity.QBFProtocol.Machine.loop), one token per step (Cslib.Complexity.QBFProtocol.Machine.step), checking the claim that the arithmetization has value 1 at the origin over ZMod p:

Points and values are rebuilt modulo p on the variables of xs whenever they are pushed, so that every step adds at most a polynomial amount of storage (Cslib.Complexity.QBFProtocol.Machine.length_encVState_le_of_mem_support_step).

Main definitions #

Main results #

References #

States #

@[reducible, inline]

Tokens of arithmetic formulas, the kind framed before the variable in binary.

Instances For
    @[reducible, inline]

    The parameters of the machine: the variables xs linearized after every quantifier, the modulus less one, so that the modulus is positive, and the degree bound D of every round.

    Instances For
      @[reducible, inline]

      The input of the loop: the parameters and the tokens of the arithmetic formula.

      Instances For
        @[reducible, inline]

        A pending claim: a point and a value.

        Instances For
          @[reducible, inline]

          The encoding of a claim, its value in unary.

          Instances For
            @[reducible, inline]

            A state of the machine: the remaining tokens, the stack of pending claims, and whether every check so far passed.

            Instances For
              @[reducible, inline]

              The encoding of the states.

              Instances For
                @[reducible, inline]

                The data of a step: the input of the loop and the current state.

                Instances For

                  The variables linearized after every quantifier.

                  Instances For

                    The modulus, which is positive.

                    Instances For

                      The degree bound of every round.

                      Instances For

                        The claim on top of the stack.

                        Instances For

                          The claims below the top of the stack.

                          Instances For

                            The step #

                            The message of a step: the remaining tokens and the point of the claim on top of the stack.

                            Instances For

                              The state after a failed check: the token and the claim are dropped.

                              Instances For

                                The reply of a step, read as D + 1 residues.

                                Instances For

                                  The state after the reply word to a binary connective o: the claimed values of the two arguments are checked against the top claim, then pushed in its place.

                                  Instances For

                                    Whether the reply word to an operator o passes the check against the top claim.

                                    Instances For

                                      The state after the reply word to an operator and the random point z: the claim that the body has the value of the reply at z, with the variable set to z.

                                      Instances For

                                        The reply to the message of a step, of which D + 1 rows are read.

                                        Instances For

                                          The continuation of a step on an operator after the reply word.

                                          Instances For

                                            One step of the machine: while every check passed and tokens remain, process the next token; otherwise stay put.

                                            Instances For

                                              The initial state: all the tokens, and the claim that the formula has value 1 at the origin.

                                              Instances For

                                                The machine runs one step per token.

                                                Instances For

                                                  The step in polynomial time #

                                                  The storage of the machine #

                                                  A bound on the encodings of the claims the machine pushes: points on the variables of xs with values below the modulus, and a value below the modulus.

                                                  Instances For

                                                    Every step adds a bounded amount of storage, polynomial in the input of the loop.

                                                    The machine in polynomial time #

                                                    Parameters of a formula #

                                                    The variable components of the tokens of a formula, in prefix order, with multiplicity and with 0 for the tokens without a variable. Every variable of the formula occurs in it.

                                                    Instances For

                                                      The degree bound of every round: twice the size of the formula.

                                                      Instances For

                                                        The modulus must exceed 12 * size ^ 2 * (size + 1).

                                                        Instances For

                                                          The modulus: the greatest prime at most twice the bound.

                                                          Instances For

                                                            The parameters and tokens of the machine for a formula.

                                                            Instances For

                                                              The verifier: reject a formula with a free variable, and otherwise run the machine on the arithmetization and accept when every check passed.

                                                              Instances For

                                                                By Bertrand's postulate, the modulus is a prime above the bound.

                                                                The verifier in polynomial time #

                                                                The verifier is strict oracle PPT: one fair-coin oracle machine with a polynomial clock realizes it against every stateful prover.