Closure properties of RP, coRP and ZPP #
RP (Cslib.Complexity.RP) is closed under union and intersection, and so are coRP and
ZPP = RP ∩ coRP Arora and Barak, Section 7.3. Both constructions run one-sided
error deciders for the two problems on disjoint parts of the random string.
- Union. Accept when either decider accepts (
Cslib.Complexity.orVerifier). On a member of one of the problems, its decider rejects at most half of its random strings, so the combined decider rejects at most half of all random strings (Cslib.Complexity.acceptCount_orVerifier); on a non-member of both, neither decider accepts. - Intersection. Accept when both deciders accept (
Cslib.Complexity.andVerifier). Error reduction makes each decider reject at most a quarter of the random strings on a member, so the combined decider accepts at least(3 / 4) ^ 2 ≥ 1 / 2of them on a common member (Cslib.Complexity.acceptCount_andVerifier); on a non-member of either, one of them rejects.
A decider ignoring an empty random string shows P ⊆ RP; with closure of P under complement
(Cslib.Complexity.compl_mem_P), P ⊆ coRP and P ⊆ ZPP. Since RP ⊆ NP, ZPP ⊆ NP ∩ coNP.
Main results #
Cslib.Complexity.P_subset_RP,Cslib.Complexity.P_subset_coRP,Cslib.Complexity.P_subset_ZPP.Cslib.Complexity.union_mem_RP,Cslib.Complexity.inter_mem_RP:RPis closed under union and intersection.Cslib.Complexity.union_mem_coRP,Cslib.Complexity.inter_mem_coRP,Cslib.Complexity.union_mem_ZPP,Cslib.Complexity.inter_mem_ZPP,Cslib.Complexity.diff_mem_ZPP,Cslib.Complexity.symmDiff_mem_ZPP,Cslib.Complexity.ZPP.booleanSubalgebra.Cslib.Complexity.ZPP_subset_NP_inter_coNP.
References #
Inclusions of P #
Union and intersection #
def Cslib.Complexity.ZPP.booleanSubalgebra {α : Type} (enc : α ↪ List Bool) :
BooleanSubalgebra (Set α)
ZPP as a Boolean subalgebra of Set α.
Instances For
@[simp]