Probabilistic classes of promise problems #
The probabilistic promise classes PromiseBPP, PromiseRP and PromiseCoRP, defined in
CslibFrontier.Computability.Complexity.Classes.BPP and
CslibFrontier.Computability.Complexity.Classes.RP together with the error conditions they share
with BPP, RP and coRP, follow Goldreich's semantic definitions Goldreich, Definition 1.2
and Section 6.2, requiring bounded or one-sided error only on instances in the
promise. They contain the lifted classes promiseClass (BPP enc), promiseClass (RP enc) and
promiseClass (coRP enc).
Each class is equivalent to its uniform strict PPT program characterization
(mem_PromiseBPP_iff_exists_isPPTOn, mem_PromiseRP_iff_exists_isPPTOn,
mem_PromiseCoRP_iff_exists_isPPTOn) via saved-coin replay (IsPPTOn.exists_seeded_evaluator,
IsPPTOn.exists_total_seeded_evaluator), and is closed under deterministic polynomial-time promise
reductions (PromiseProblem.PolyTimeReducible.mem_PromiseBPP,
PromiseProblem.PolyTimeReducible.mem_PromiseRP,
PromiseProblem.PolyTimeReducible.mem_PromiseCoRP).
Main results #
Cslib.Complexity.mem_PromiseCoRP_iff: a seeded-verifier characterization ofPromiseCoRP.Cslib.Complexity.promiseClass_BPP_subset_PromiseBPP,Cslib.Complexity.promiseClass_RP_subset_PromiseRP,Cslib.Complexity.promiseClass_coRP_subset_PromiseCoRP: inclusion of the lifts ofBPP,RPandcoRP.Cslib.Complexity.compl_mem_PromiseRP_iff,Cslib.Complexity.compl_mem_PromiseCoRP_iff: complement relations betweenPromiseRPandPromiseCoRP.Cslib.Complexity.PromiseP_subset_PromiseRP,Cslib.Complexity.PromiseP_subset_PromiseCoRP,Cslib.Complexity.PromiseP_subset_PromiseBPP.Cslib.Complexity.probability_sampleList_verifier: acceptance probability of sampling a uniform random word for a seeded verifier.Cslib.Complexity.mem_PromiseBPP_iff_exists_isPPTOn,Cslib.Complexity.mem_PromiseRP_iff_exists_isPPTOn,Cslib.Complexity.mem_PromiseCoRP_iff_exists_isPPTOn: characterizations by uniform strict PPT programs.Cslib.Complexity.PromiseProblem.PolyTimeReducible.mem_PromiseBPP,Cslib.Complexity.PromiseProblem.PolyTimeReducible.mem_PromiseRP,Cslib.Complexity.PromiseProblem.PolyTimeReducible.mem_PromiseCoRP: closure of probabilistic promise classes under deterministic polynomial-time reductions.
References #
A promise problem is in PromiseCoRP when a polynomial-time verifier accepts every random
string on every yes-instance and rejects at least half on every no-instance.
Every promise problem separated by a language in BPP is in PromiseBPP.
Every promise problem separated by a language in RP is in PromiseRP.
Every promise problem separated by a language in coRP is in PromiseCoRP.
A promise problem's complement is in PromiseRP exactly when the problem is in
PromiseCoRP.
A promise problem's complement is in PromiseCoRP exactly when the problem is in
PromiseRP.
Every promise problem in PromiseP is in PromiseCoRP.
Every promise problem in PromiseP is in PromiseBPP.
Probabilistic-program characterization of PromiseBPP: a promise problem is in
PromiseBPP exactly when a uniform strict PPT Boolean program accepts every yes-instance with
probability at least 2 / 3 and rejects every no-instance with probability at least 2 / 3.
Probabilistic-program characterization of PromiseRP: a promise problem is in PromiseRP
exactly when a uniform strict PPT Boolean program accepts every yes-instance with probability at
least 1 / 2 and never accepts a no-instance.
Probabilistic-program characterization of PromiseCoRP: a promise problem is in
PromiseCoRP exactly when a uniform strict PPT Boolean program never rejects a yes-instance and
rejects every no-instance with probability at least 1 / 2.
PromiseBPP is closed under polynomial-time reductions.
PromiseRP is closed under polynomial-time reductions.
PromiseCoRP is closed under polynomial-time reductions.