The halting verifier along the paper's route: the accounting #
Blueprint lem:lambda in the paper's form (recursive.tex), for the polynomial-time halting
reduction of planning/polytime-halting.md: the verifier Vhalt M λ is λ-bounded
(Verifier.IsBounded λ) as soon as λ ≥ Λ₀ + 4|M|, for a threshold Λ₀ depending on the
compressor, the universal machines and the search program alone — and at such λ the
compressor's bound poly(n, λ) is below n ^ λ at every level n ≥ 2, which is what the
induction of Paper/Induction.lean runs on.
The accounting has three layers.
- The decider's run (
dec_cost): on(n, d),dec M λruns withindecRunZ z |d|atz = n + |M| + λ, an explicit expression assembled along the fixed point's time transfer (Cost.kleeneFix_runs_of), the hardcoding of the description (hardcode_time), the run ofprep(itstimeBound), the universal machine on whatprepreturns (U.time_le) and the compressed decider's own time (GapCompression.decider_time).decRunZis aPolyCost, so the run is withinQ(n + |M| + λ) · (|d| + 1) ^ kfor a polynomialQand a degreekdepending onG,U,UT,S'alone (decCostPoly,decCostDeg,dec_cost_spec). This fine form, polynomial in the level with|M|andλas parameters, is what the class verifier of the paper'sMIP*needs at the fixed levelC;IsBoundedonly recordsn ^ λ. - The wrapped decider (
Vhalt_decider_cost):Prog.wrapCoreCostofHalting/WrapperCostwith the inner cost above, bounded by the master expressionWZ zat the largestzof the index,|M|,λand the input size (wrapCoreCost_le_WZ). - The clauses of
IsBounded λ, each absorbed past a threshold byPolyBounded.absorb(the dimension, the sampler's and the decider's times, and the parameter inequalitypoly(n, λ) ≤ n ^ λ) orPolyBounded.absorb_log(the size, where the decider's description is2 (|M| + |λ|)plus a constant, so thatλ ≥ Λ₀ + 4|M|leaves room for it).
The threshold is existential (exists_lamBound, Lam0), as in lem:lambda: the paper's
λ(M) = poly(|M|) is here the affine Λ₀ + 4|M|, and the constant Λ₀ is whatever the
absorption thresholds are.
What prep returns #
The cost of the two constant programs: the sizes of encode true and encode false.
Equations
Instances For
The size of the program prep returns, at the parameter λ and the inner decider e:
the compressed decider's, from compress's time bound at the size of its input.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The description wrapCore univ s (encode e) has size |s| + |e| + 2|univ| + wrapNodes.
What prep returns, on the description (M, (λ, e)) and the input (n, d): a program
of size at most progSize λ e, an input of size at most |n| + |d| + 1, and the program runs
on the input within the compressed decider's time plus a constant.
The decider's run #
Every atom of the cost — |n|, |M| + |λ|, |λ|, n, λ — is at most 4z + 1 or z at
z = n + |M| + λ; muZ is the common bound on the encodings' sizes.
The common bound 5z + 1 on |n|, |M| + |λ| and |λ|.
Equations
- MIPRE.Halting.muZ z = 5 * z + 1
Instances For
The size of the decider, in z.
Equations
- MIPRE.Halting.eZ G U UT S' z = 2 * MIPRE.Halting.muZ z + MIPRE.Halting.cD G U UT S'
Instances For
The size of the description (M, (λ, dec M λ)), in z.
Equations
- MIPRE.Halting.pZ G U UT S' z = 3 * MIPRE.Halting.muZ z + MIPRE.Halting.cD G U UT S' + 2
Instances For
The size of F (dec M λ), in z.
Equations
- MIPRE.Halting.feZ G U UT S' z = MIPRE.Cost.esize (MIPRE.Halting.body G U UT S') + MIPRE.Halting.pZ G U UT S' z + 35
Instances For
The size of the input (n, d), in z and |d|.
Equations
- MIPRE.Halting.vZ z s = MIPRE.Halting.muZ z + s + 1
Instances For
The time of prep, in z and |d|.
Equations
- MIPRE.Halting.tpZ G U UT S' z s = Polynomial.eval (MIPRE.Halting.pZ G U UT S' z + MIPRE.Halting.vZ z s + 1) (MIPRE.Halting.prep G U UT S').timeBound
Instances For
The size of the program prep returns, in z.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The time of the program prep returns, in z and |d|.
Equations
- MIPRE.Halting.tcZ G z s = Polynomial.eval (2 * z) G.bound * (s + 1) ^ G.deg + MIPRE.Halting.constCost
Instances For
The time of the universal machine on it, in z and |d|.
Equations
- MIPRE.Halting.tuZ G U UT S' z s = Polynomial.eval (MIPRE.Halting.sigmaZ G U UT S' z + MIPRE.Halting.vZ z s + MIPRE.Halting.tcZ G z s) U.bound
Instances For
The time of body, in z and |d|.
Equations
- MIPRE.Halting.tbZ G U UT S' z s = MIPRE.Halting.tpZ G U UT S' z s + (MIPRE.Halting.sigmaZ G U UT S' z + MIPRE.Halting.vZ z s + 1 + 1 + MIPRE.Halting.tuZ G U UT S' z s + 1) + 1
Instances For
The time of F (dec M λ), in z and |d|.
Equations
- MIPRE.Halting.tfZ G U UT S' z s = MIPRE.Halting.tbZ G U UT S' z s + MIPRE.Halting.pZ G U UT S' z + MIPRE.Halting.vZ z s + 3
Instances For
The overhead of the fixed point's transfer, in z.
Equations
- MIPRE.Halting.ovZ G U UT S' z = 21 * MIPRE.Halting.muZ z + MIPRE.Halting.cO G U UT S'
Instances For
The master bound on the decider's run, in z and |d|.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The decider's run: on (n, d), dec M λ halts within decRunZ (n + |M| + λ) |d|.
The polynomial form #
(|d| + 1) ^ k is a polynomial cost.
The decider's cost, in polynomial form: a polynomial Q and a degree k, depending on
G, U, UT and S' alone, with dec M λ halting on (n, d) within
Q (n + |M| + λ) · (|d| + 1) ^ k.
The polynomial of the decider's cost.
Equations
- MIPRE.Halting.decCostPoly G U UT S' = ⋯.choose
Instances For
The degree of the decider's cost in the input size.
Equations
- MIPRE.Halting.decCostDeg G U UT S' = ⋯.choose
Instances For
The wrapped decider #
The decider of 𝒱^halt, on every input: the wrapper's cost with the inner cost in
polynomial form.
The compressed sampler's program at λ has size at most samplerProg's time bound at
|λ|.
The size of the compressed sampler's program, in z.
Equations
Instances For
The compressor's bound poly(m, λ), in z.
Equations
- MIPRE.Halting.betaZ G z = Polynomial.eval (2 * z) G.bound
Instances For
wrapHeadZ, in z.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The master bound on the wrapped decider's cost, in z: wrapCoreCost with every atom
replaced by its bound.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The wrapped decider's cost is below the master bound at any z above the index, |M|,
λ and the input size.
The clauses of IsBounded #
The sampler clauses and the parameter inequality: past a threshold on λ, at every
index m ≥ 2 the compressor's bound poly(m, λ) is below m ^ λ, so the compressed sampler
at λ has dimension at most m ^ λ and runs within m ^ λ · (|d| + 1) ^ λ.
The decider clause: past a threshold on λ, for |M| ≤ λ, the decider of 𝒱^halt
runs within m ^ λ · (|d| + 1) ^ λ at every index m ≥ 2.
The size of 𝒱^halt beyond 2|M|, as a function of |λ|.
Equations
- MIPRE.Halting.vsizeZ G U UT S' l = Polynomial.eval l G.samplerProg.timeBound + 2 * l + (MIPRE.Halting.cD G U UT S' + 2 * MIPRE.Cost.esize U.univ + MIPRE.Cost.Prog.ProgD.wrapNodes)
Instances For
The size of 𝒱^halt M λ is at most 2|M| + vsizeZ |λ|.
The size clause: past a threshold on λ, for 4|M| ≤ λ, |𝒱^halt M λ| ≤ λ.
lem:lambda #
lem:lambda, the paper's form: there is a threshold Λ₀, depending on G, U, UT
and S' alone, such that for every machine M and every λ ≥ Λ₀ + 4|M|, the verifier
𝒱^halt M λ is λ-bounded and the compressor's bound poly(n, λ) is below n ^ λ at every
level n ≥ 2.
The threshold of lem:lambda.
Equations
- MIPRE.Halting.Lam0 G U UT S' = ⋯.choose