From polynomially bounded cost to λ-boundedness #
Verifier.IsBounded (blueprint def:lambda-bounded) is the hypothesis every class membership
of the halting reduction carries, and until this file nothing in the repository inhabited it:
every proof of it was conditional on another time bound. This file closes that gap in the
abstract, leaving exactly one thing to supply — that the two programs of the verifier have
polynomially bounded cost (Prog.HasPolyCost).
Verifier.IsBounded.mono:λ-boundedness is monotone inλ. The classesclassA n,classB nask forIsBounded nat the levelnitself, so a verifier bounded at someλis in them fromλon; this is what the thresholdsn₀ofMIPRE.Halting.Obligationsabsorb.Decider.timeBoundAt_of_hasPolyCostandCL.Sampler.timeBoundAt_of_hasPolyCost: a costC n · (|d| + 1) ^ kwithCpolynomially bounded fits undern ^ λ · (|d| + 1) ^ λfor a singleλand everyn ≥ 2(PolyBounded.exists_le_pow). This is the step that the two repairs ofTimeBoundAt(#57, #61) were about: the bound has to grow with the input, and its degree has to be free, or nothing that calls the universal machine can meet it.Verifier.exists_isBounded: the threshold form,∃ n₀, ∀ n ≥ n₀, V.IsBounded n, which is what the classes consume.
Nothing here knows about wrappers or descriptions; Halting/WrapperCost.lean discharges the
HasPolyCost hypotheses for the verifier a string denotes.
Monotonicity in λ #
λ-boundedness is monotone in λ: every clause of def:lambda-bounded weakens as λ
grows. Raising λ is free, which is what lets a verifier bounded at some fixed λ belong to
the classes at every level above it.
Polynomially bounded cost gives a time bound #
A program of polynomially bounded cost meets a single n ^ λ time bound at degree λ,
for every n ≥ 2. The degree and the coefficient are chosen together: PolyBounded.exists_le_pow
supplies a λ above which the coefficient fits under n ^ λ, and the degree of the cost is
absorbed by raising λ further.
The decider form of Prog.HasPolyCost.exists_bound.
The sampler form of Prog.HasPolyCost.exists_bound.
The converse: a time bound with a polynomially bounded coefficient #
A uniform time bound whose coefficient is polynomially bounded is polynomially bounded
cost. This is the direction MIPRE.GapCompression supplies: its sampler_time and
decider_time fields bound the running times of the compressed verifier by
bound.eval (n + λ) at a fixed degree, and bound.eval (n + λ) is polynomially bounded in
n.
The sampler form.
λ-boundedness of a verifier #
A verifier whose programs have polynomially bounded cost and whose sampler has
polynomially bounded dimension is λ-bounded, for some λ. The three hypotheses are the
three clauses of def:lambda-bounded; the fourth, |𝒱| ≤ λ, is free, the size of a verifier
being a constant.
The threshold form: such a verifier is n-bounded at every level n from some n₀ on.
This is the shape the classes MIPRE.Halting.classA, classB consume, IsBounded n being
asked at the level itself.