Documentation

MIPRE.Foundations.Verifier

Deciders and normal form verifiers #

Blueprint def:decider, def:normal-verifier and def:lambda-bounded (paper games.tex, Definitions def:decider, def:normal-ver, def:normal-game, def:lambda; ledger node 1.1.3). A normal form verifier is the uniform way the pipeline presents an infinite family of games: a sampler (MIPRE.CL.Sampler), which produces the questions, and a decider, which checks the answers, both programs of the ambient cost model (MIPRE.Cost).

Timeouts are not modelled: in the ambient cost model a decider with TIME_๐’Ÿ(n) < โˆž halts on every input of index n, and the paper's convention that a timeout is a rejection is the convention that anything but halting with output 1 is.

Why the time bound is a polynomial in the input size #

The paper's TIME_๐’Ÿ(n) is the maximum of the running time over all inputs of index n, finite because a Turing machine can stop reading after a bounded prefix. The ambient model has no cursor into its input: a value is inspected in place by elim, one node per step, but a loop can carry the rest of a list from one iteration to the next only by copying it (Eval.var costs the size of the value), so walking j cells of a list of size s costs about j ยท s, and no program can check |x| = s(n) for unbounded s(n) within a cost independent of |x|. A bound uniform over all inputs is therefore satisfiable only by deciders that never look past a fixed depth of their input โ€” none that satisfies Verifier.accepts_length with s(n) โ†’ โˆž.

The degree k is needed as well as the coefficient T, and this is forced by the one thing every decider of the pipeline does: run another program through the universal machine. The overhead of MIPRE.Cost.UniversalMachine is a polynomial Q in |c| + |v| + t, of degree well above one (Cost.Universal.univPoly), so a simulated run costing T ยท (|d| + 1)^k becomes one costing about Q(T ยท (|d| + 1)^k), of degree k ยท deg Q in the input size. No fixed degree is closed under the composition the deciders perform; a bounded degree is, and k is that bound. Taking one parameter for both โ€” T ยท (|d| + 1)^T โ€” would be closed too, but then ฮป-boundedness would read as degree n^ฮป in the input size, which is not a polynomial-time condition at all and would make MIPRE.GapCompression assume compression of verifiers the paper's proof cannot compress.

So TimeBoundAt n T k is "cost at most T ยท (|d| + 1)^k", and ฮป-boundedness bounds both parameters by ฮป's: coefficient n^ฮป, degree ฮป. The consequence s(n) โ‰ค TIME_๐’ฎ(n) of the paper, which depended on the uniform bound, is put into IsBounded as a clause.

Deciders #

structure MIPRE.Decider :

def:decider: a decider is a program whose one input is encode (n, x, y, a, b) โ€” an index n and the questions and answers x, y, a, b of the two players.

Instances For

    The decider accepts (n, x, y, a, b): it halts with output 1. Any other outcome โ€” output 0, or not halting โ€” is rejection.

    Equations
    Instances For

      TIME_๐’Ÿ(n) โ‰ค T: the decider halts within cost T ยท (|d| + 1)^k on every input (n, d), well formed or not โ€” the paper's bound, read as a polynomial in the size of the input with coefficient T and degree k (see the module docstring).

      Equations
      Instances For

        TIME_๐’Ÿ(n) โ‰ค T n for every n, at degree k.

        Equations
        Instances For
          theorem MIPRE.Decider.TimeBoundAt.mono {D : Decider} {n T k T' k' : โ„•} (h : D.TimeBoundAt n T k) (hT : T โ‰ค T') (hk : k โ‰ค k') :
          D.TimeBoundAt n T' k'

          The bound is monotone in both parameters.

          The description length |๐’Ÿ|.

          Equations
          Instances For

            Normal form verifiers #

            structure MIPRE.Verifier (โ„“ : โ„•) :

            def:normal-verifier: a normal form verifier is a sampler and a decider, the decider accepting only questions of the sampler's dimension (the paper's requirement that it first check |x| = |y| = s(n) and reject otherwise). The number of levels of the verifier is that of its sampler.

            Instances For
              def MIPRE.Verifier.size {โ„“ : โ„•} (V : Verifier โ„“) :

              The description length |๐’ฑ| = max(|๐’ฎ|, |๐’Ÿ|).

              Equations
              Instances For

                The answer alphabet of ๐’ฑ_n: the bit strings of length at most T, the paper's {0,1}^{โ‰ค TIME_๐’Ÿ(n)}.

                Equations
                Instances For
                  theorem MIPRE.Verifier.Answers.getElem?_injective (T : โ„•) :
                  Function.Injective fun (a : Answers T) (i : Fin (T + 1)) => (โ†‘a)[โ†‘i]?

                  An answer is determined by its bits at the positions below T + 1.

                  @[reducible, inline]
                  abbrev MIPRE.Verifier.Questions {โ„“ : โ„•} (V : Verifier โ„“) (n : โ„•) :

                  The question alphabet of ๐’ฑ_n: ๐”ฝโ‚‚^{s(n)}.

                  Equations
                  Instances For
                    noncomputable def MIPRE.Verifier.game {โ„“ : โ„•} (V : Verifier โ„“) (n T : โ„•) :
                    Game (V.Questions n) (V.Questions n) (Answers T) (Answers T)

                    The game ๐’ฑ_n with answers of length at most T (the paper's def:normal-game, at T = TIME_๐’Ÿ(n)): questions ๐”ฝโ‚‚^{s(n)} distributed as the sampler prescribes, answers accepted when the decider accepts them.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      noncomputable def MIPRE.Verifier.valStar {โ„“ : โ„•} (V : Verifier โ„“) (n T : โ„•) :

                      val*(๐’ฑ_n), the quantum value of the n-th game with answers of length at most T.

                      Equations
                      Instances For
                        def MIPRE.Verifier.IsSynchronousAt {โ„“ : โ„•} (V : Verifier โ„“) (n : โ„•) :

                        The decider rejects unequal answers to equal questions at index n, so that ๐’ฑ_n is a synchronous game (blueprint def:sync-game).

                        Equations
                        Instances For
                          noncomputable def MIPRE.Verifier.syncGame {โ„“ : โ„•} (V : Verifier โ„“) (n T : โ„•) (h : V.IsSynchronousAt n) :

                          ๐’ฑ_n as a synchronous game, when the decider makes it one.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def MIPRE.Verifier.IsBounded {โ„“ : โ„•} (V : Verifier โ„“) (lam : โ„•) :

                            def:lambda-bounded: TIME_๐’ฎ(n), TIME_๐’Ÿ(n) โ‰ค n^ฮป โ€” at degree ฮป in the size of the input (TimeBoundAt) โ€” and s(n) โ‰ค n^ฮป, for all n โ‰ฅ 2, and |๐’ฑ| โ‰ค ฮป. The clause s(n) โ‰ค n^ฮป is, in the paper, a consequence of the time bound (the sampler writes s(n) output cells); with the running time bounded by a polynomial in the input size it is not, and it is required directly.

                            Equations
                            Instances For
                              theorem MIPRE.Verifier.IsBounded.two_le {โ„“ : โ„•} (V : Verifier โ„“) {lam : โ„•} (h : V.IsBounded lam) :
                              2 โ‰ค lam

                              ฮป-boundedness forces 2 โ‰ค ฮป, through the size clause: every program encodes to a Data.cons, so 2 โ‰ค |๐’Ÿ| โ‰ค |๐’ฑ| โ‰ค ฮป (Cost.Prog.two_le_esize).

                              This is small and entirely load-bearing. The time clauses of IsBounded are all guarded by 2 โ‰ค n, so at n = 0, 1 they say nothing and no budget exists โ€” acceptance at those indices is genuinely ฮฃโ‚. What rules those indices out is not an extra hypothesis anywhere but this lemma: a verifier that is n-bounded is so at an n that is at least 2. If the V.size โ‰ค lam clause is ever dropped from IsBounded, MIPRE.Halting.accOf_iff becomes unprovable, and with it the acceptance table of the tabulation, obligation O2.

                              accOf_iff is the one bridge still hostage to it. The two sampler runs of the tabulation are budgeted from MIPRE.GapCompression.sampler_time, a bound at every index carrying no hypothesis, so MIPRE.Halting.dimOf_eq and MIPRE.Halting.margOf_eq hold at n = 0 and n = 1 as well and appeal neither to IsBounded nor to this lemma. The decider cannot be budgeted that way โ€” the one a string denotes is the string's own, wrapped, and only IsBounded n bounds it โ€” so accOf_iff runs at the budget n ^ n that boundedness supplies, needs 2 โ‰ค n to have it, and carries MIPRE.Halting.acc_mem_iff, tab_match and tab_value with it.