The class verifiers' sampler, for a polynomial-time family of samplers #
The sampler of the class verifiers: the PolyVerifier that puts an r.e. language in
MIP*_{1,1/2}(2,1) (Paper/ClassVerifier.lean), and the polynomial-time tailored verifier
that puts it in TMIP* (MIPRE/Tailored/ClassVerifier.lean). It is stated for any family of
samplers λ ↦ S^λ of a level ℓ whose programs are computed from λ in polynomial time and
which run within a polynomial in n + λ (SamplerFamily). A GapCompression supplies one at
level 7 (GapCompression.samplerFamily), a tailored gap compression one at its own level.
On (z, r), for a polynomial-time reduction R to halting and the parameter
λ(z) = Λ₀ + 4|R z| of lem:lambda (lamz), the sampler sampProg computes M = R z,
λ(z) and the program of S^{λ(z)} (A1); asks it its dimension s at the fixed index n₀
through the universal machine (runUK); converts s to unary (unaryStage); takes the first
s bits r' of the seed and asks S^{λ(z)} the two marginals at r' (A2, A3, runUK).
sampProg_runs: at a level ℓ ≥ 1 it halts with the question pair of S^{λ(z)} at the point
r' within sampB (|z| + |r|), a polynomially bounded function (polyBounded_sampB). At level
0 the marginal queries say nothing, but there the questions are empty
(CL.Sampler.dim_eq_zero_of_level_zero): classSampler outputs the empty pair at level 0
and is sampProg above it.
The question distribution. A PolyVerifier whose sampler does this on the seeds of length
B z (Samples) pushes the uniform seed forward to the distribution of S^{λ(z)} at n₀, on
the questions embedded as bit strings (game_μ_qEmb), and its game has no weight elsewhere
(game_support): the seeds producing a question pair are the extensions of the points of
𝔽₂^s producing it, each in 2^{B - s} ways (seedCount_eq).
The parameter #
The parameter of the input z: Λ₀ + 4|R z|.
Equations
- MIPRE.Halting.lamz Λ₀ R z = Λ₀ + 4 * MIPRE.Cost.esize (R.toFun z)
Instances For
The parameter, in the total input length m.
Equations
- MIPRE.Halting.lamB Λ₀ R m = Λ₀ + 4 * Polynomial.eval (4 * m + 1) R.timeBound
Instances For
The parameter's bound lamB is polynomial.
Families of samplers #
A polynomial-time family of samplers: samplers S^λ of level ℓ, their programs computed
from λ in polynomial time, running within poly(n + λ) at degree deg, of dimension at most
poly(n + λ).
- sampler : ℕ → CL.Sampler ℓ
- samplerProg : Cost.PolyTimeFun ℕ Cost.Prog
- bound : Polynomial ℕ
- deg : ℕ
- sampler_time (lam n : ℕ) : (self.sampler lam).TimeBoundAt n (Polynomial.eval (n + lam) self.bound) self.deg
Instances For
The marginal query of player w at the level ℓ and the index n₀, as data.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The dimension query at the index n₀, as data.
Equations
Instances For
A run of a sampler on a query is within its time bound.
The sampler and its pieces #
The sampler of the input z: S^{λ(z)}.
Equations
- F.Sz Λ₀ R z = F.sampler (MIPRE.Halting.lamz Λ₀ R z)
Instances For
The dimension of its questions at the index n₀.
Instances For
Player w's question on the seed r, on the input z: the marginal of S^{λ(z)} at the
first dimz z bits of r.
Equations
- F.qOf n₀ Λ₀ R w z r = MIPRE.CL.toBits (((F.Sz Λ₀ R z).cl n₀ w).eval (MIPRE.CL.ofBits (F.dimz n₀ Λ₀ R z) (List.take (F.dimz n₀ Λ₀ R z) r)))
Instances For
(z, r) ↦ ComputeSampler(λ(z)).
Equations
- F.spF Λ₀ R = F.samplerProg.comp ((MIPRE.Halting.lamF Λ₀).comp (R.comp MIPRE.Cost.PolyTimeFun.fst))
Instances For
Stage 1: from (z, r), the pair (S, dimension) to run and the state (S, r).
Equations
- F.A1 n₀ Λ₀ R = ((F.spF Λ₀ R).pair (MIPRE.Cost.PolyTimeFun.const (MIPRE.Halting.SamplerFamily.qdim n₀))).pair ((F.spF Λ₀ R).pair MIPRE.Cost.PolyTimeFun.snd)
Instances For
Stage 2: from ((S, r), s) with s in unary, the pair (S, marginal A (r.take s)) to run
and the state (S, r.take s).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Stage 3: from ((S, r'), x), the pair (S, marginal B r') to run and the state x.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sampler of the class verifier.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The costs #
The family's bound poly(n₀, λ), in the total input length m: bounds the dimension and the
times.
Equations
- F.dimB n₀ Λ₀ R m = Polynomial.eval (n₀ + MIPRE.Halting.lamB Λ₀ R m) F.bound
Instances For
Stage 1's cost.
Instances For
The first universal call's cost.
Equations
Instances For
The conversion's cost.
Equations
Instances For
Stage 2's cost.
Equations
- F.T2B n₀ U Λ₀ R m = Polynomial.eval (F.UnB n₀ U Λ₀ R m) (MIPRE.Halting.SamplerFamily.A2 n₀).timeBound
Instances For
The second universal call's cost.
Equations
Instances For
Stage 3's cost.
Equations
- F.T3B n₀ U Λ₀ R m = Polynomial.eval (F.R2B n₀ U Λ₀ R m) (MIPRE.Halting.SamplerFamily.A3 n₀).timeBound
Instances For
The third universal call's cost.
Equations
Instances For
The sampler's cost, in the total input length.
Equations
Instances For
The sampler's run: on (z, r) with r at least dimz z long, it halts with the
question pair of the seed within sampB (|z| + |r|).
The bounds are polynomial #
The shape of the three universal calls' bounds.
At every level #
The class sampler, at every level: sampProg at the levels ℓ ≥ 1, and at level 0,
where the questions are empty, the program outputting the empty pair.
Equations
Instances For
The class sampler's cost, in the total input length.
Instances For
The class sampler's run, at every level: on (z, r) with r at least dimz z long, it
halts with the question pair of the seed within classB (|z| + |r|).
The question distribution #
The questions of S^{λ(z)} at the index n₀.
Instances For
V samples S^{λ(z)} at n₀: on every input z and every seed r of length B z, its
sampler halts within P(|z| + |r|) with the question pair of the seed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A sampler running as the class sampler does, within a bound below P, samples.
A sampler that samples meets the sampler's clause of efficiency.
The question pair of a seed of the right length.
The embedding of the questions of S^{λ(z)} into the strings of length at most B z.
Equations
Instances For
The number of seeds producing a given question pair: a count over 𝔽₂^{s} times
2 ^ (B - s).
The distribution of the game, on the embedded questions, is the sampler's.
The distribution of the game is supported on the embedded questions.
The compressed samplers of a gap compression.
Equations
- G.samplerFamily = { sampler := G.sampler, samplerProg := G.samplerProg, samplerProg_eq := ⋯, bound := G.bound, deg := G.deg, sampler_time := ⋯, sampler_dim := ⋯ }