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).
MIPRE.Decider: a program whose one input isencode (n, x, y, a, b); it accepts when it halts with output1(Decider.Accepts), and rejects otherwise.Decider.TimeBoundAt n T kisTIME_๐(n) โค T, read as halting within costT ยท (|d| + 1)^kon every input(n, d), well formed or not: the paper's bound is uniform over all inputs, which the ambient model cannot achieve (see below), so the running time is bounded by a polynomial in the size of the input whose coefficient isTand whose degree isk.MIPRE.Verifier โ: a sampler and a decider, with the paper's requirement that the decider accept only questions of the sampler's dimensions(n)(it "first checks|x| = |y| = s(n)",Verifier.accepts_length).Verifier.game n T: the game๐ฑ_nโ questions๐ฝโ^{s(n)}, answers the bit strings of length at mostT(Verifier.Answers T), the sampler's distribution, and acceptance by the decider. The paper's๐ฑ_nis the caseT = TIME_๐(n); the bound is a parameter here because every statement about๐ฑ_ncarries an explicit time bound anyway, and taking the exact supremum would only add a degenerate case (TIME_๐(n) = โ, where the paper's game is undefined) to every definition.Verifier.syncGameis the same game as aSynchronousGame, under the condition on the decider that makes it one (Verifier.IsSynchronousAt).Verifier.IsBounded ฮป:def:lambda-bounded,TIME_๐ฎ(n), TIME_๐(n) โค n^ฮปwith degreeฮปin the input size, ands(n) โค n^ฮป, forn โฅ 2, and|๐ฑ| โค ฮป.
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 #
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.
- prog : Cost.Prog
The program.
- closed : Cost.Prog.WellScoped 1 self.prog
The program is closed.
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
- D.TimeBoundAt n T k = โ (d : MIPRE.Cost.Data), MIPRE.Cost.HaltsWithin D.prog ((MIPRE.Cost.encode n).cons d) (T * (d.size + 1) ^ k)
Instances For
The bound is monotone in both parameters.
Normal form verifiers #
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.
- sampler : CL.Sampler โ
The sampler, producing the questions.
- decider : Decider
The decider, checking the answers.
- accepts_length (n : โ) (x y a b : Cost.BitStr) : self.decider.Accepts n x y a b โ List.length x = self.sampler.dim n โง List.length y = self.sampler.dim n
The decider accepts only questions of the sampler's dimension.
Instances For
The answer alphabet of ๐ฑ_n: the bit strings of length at most T, the paper's
{0,1}^{โค TIME_๐(n)}.
Equations
- MIPRE.Verifier.Answers T = { a : MIPRE.Cost.BitStr // List.length a โค T }
Instances For
An answer is determined by its bits at the positions below T + 1.
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
val*(๐ฑ_n), the quantum value of the n-th game with answers of length at most T.
Equations
- V.valStar n T = MIPRE.quantumValue (V.game n T)
Instances For
The decider rejects unequal answers to equal questions at index n, so that ๐ฑ_n is a
synchronous game (blueprint def:sync-game).
Equations
- V.IsSynchronousAt n = โ (x a b : MIPRE.Cost.BitStr), a โ b โ ยฌV.decider.Accepts n x x a b
Instances For
๐ฑ_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: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
ฮป-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.