Verifier characterization of PromiseBPTIME within explicit time #
Promise problems Goldreich in Cslib.Complexity.PromiseBPTIME enc t are
characterized by deterministic verifiers reading random strings, keeping the time bound up to
constant factors:
- Sample and verify (
Cslib.Complexity.mem_PromiseBPTIME_of_verifier). If a verifierVis computable within timeT (a, w)on encoded pairs, the lengthℓ aof the random string is computable in unary withinTℓ a, and(enc a).length + Tℓ a + T (a, w)is withinO(t (enc a).length), then a promise problem is inPromiseBPTIME enc twhen at least two thirds of the strings of lengthℓ aare accepted on its yes-instances and rejected on its no-instances. The machine isCslib.Complexity.exists_machine_sampleVerify. - Coin replay (
Cslib.Complexity.exists_verifier_of_mem_PromiseBPTIME). A promise problem inPromiseBPTIME enc thas a verifier computable in linear time on encoded pairs: replay the coins on the machine and test whether the output is[true]. Every random-string length of at leastc * t (enc a).length + cworks, since a halted run ignores further coins.
The polynomial characterization of PromiseBPP
(Cslib.Complexity.mem_PromiseBPP_iff_exists_isPPTOn) loses the polynomial degree; these
explicit-time forms are what a time hierarchy for promise problems needs. Such a hierarchy is
known without advice, by delayed diagonalization He, while the hierarchy for BPTIME
itself is open.
Main results #
Cslib.Complexity.mem_PromiseBPTIME_of_verifier: sample and verify within explicit time.Cslib.Complexity.exists_verifier_of_mem_PromiseBPTIME: a linear-time coin-replay verifier.
References #
Sample and verify, within explicit time. If a verifier V is computable within time
T (a, w) on encoded pairs, and the length ℓ a of the random string is computable in unary
within time Tℓ a, with (enc a).length + Tℓ a + T (a, w) ≤ C * t (enc a).length + C for every
string w of length ℓ a, then a promise problem is in PromiseBPTIME enc t when V accepts at
least two thirds of the strings of length ℓ a together with each yes-instance a, and rejects at
least two thirds of them together with each no-instance.
A linear-time verifier for promise-problem probabilistic time. A promise problem in
PromiseBPTIME enc t has a verifier computable in linear time on encoded pairs. For a constant
c, every random-string length L ≥ c * t (enc a).length + c works: the verifier accepts at least
two thirds of the strings of length L together with each yes-instance, and rejects at least two
thirds of them together with each no-instance. The verifier replays the coins on the machine and
tests whether the output is [true].