Documentation

Complexity.Computability.Complexity.Classes.PP.Characterization

Characterisations and closure properties of PP #

PP (Cslib.Complexity.PP) is defined by a strict majority of accepted random strings Gill. This file proves that a non-strict majority defines the same class, that PP is closed under polynomial-time reductions, and the characterisations of PP through #P and GapP Fenner, Fortnow and Kurtz.

Main definitions #

Main results #

References #

Non-strict majority #

def Cslib.Complexity.DecidesByNonstrictMajority {α : Type} (enc : α ↪ List Bool) (p : Polynomial ℕ) (V : α × List Bool → Bool) (A : Set α) :

V decides A by non-strict majority, using random strings whose length is p evaluated at the length of the encoded instance: a ∈ A exactly when at least half of the random strings r give V (a, r) = true.

Instances For

    A verifier decides A by strict majority exactly when its negation decides Aᶜ by non-strict majority.

    Non-strict majority defines PP: a problem is in PP exactly when a polynomial-time verifier accepts the members of the problem, and only them, on at least half of the random strings.

    Reductions #

    theorem Cslib.Complexity.PolyTimeReducible.mem_PP {α : Type} {enc : α ↪ List Bool} {β : Type} {encB : β ↪ List Bool} {A : Set α} {B : Set β} (h : PolyTimeReducible enc encB A B) (hB : B ∈ PP encB) :
    A ∈ PP enc

    PP is closed under polynomial-time reductions. The verifier runs the verifier for the target problem on the reduced instance; the random string is padded to a polynomial in the length of the encoded instance, and the ignored bits multiply both sides of the majority condition by the same power of two.

    PP through #P and GapP #

    theorem Cslib.Complexity.mem_PP_iff_exists_SharpP {α : Type} {enc : α ↪ List Bool} {A : Set α} :
    A ∈ PP enc ↔ ∃ f ∈ SharpP enc, ∃ (q : Polynomial ℕ), ∀ (a : α), a ∈ A ↔ 2 ^ Polynomial.eval (enc a).length q < 2 * f a

    PP through #P: a problem is in PP exactly when, for a function f in #P and a polynomial q, its members are the instances a with 2 ^ q(n) < 2 f(a), where n is the length of the encoded instance. The polynomial q need not be the length of the certificates counted by f.

    theorem Cslib.Complexity.mem_PP_iff_exists_GapP {α : Type} {enc : α ↪ List Bool} {A : Set α} :
    A ∈ PP enc ↔ ∃ g ∈ GapP enc, ∀ (a : α), a ∈ A ↔ 0 < g a

    PP through GapP Fenner, Fortnow and Kurtz: a problem is in PP exactly when its members are the instances where some function in GapP is positive.