Documentation

Complexitylib.Classes.PH.SipserLautemann

The Sipser–Lautemann theorem #

The Sipser–Lautemann theorem (Arora–Barak Theorem 7.15) places bounded-error probabilistic polynomial time inside the second level of the polynomial hierarchy: BPP ⊆ Σ₂ᵖ ∩ Π₂ᵖ. This file states that containment against the library's concrete BPP (Complexitylib.Classes.Randomized) and the certificate-quantifier levels SigmaP / PiP (Complexitylib.Classes.PH), and proves it: sipserLautemann.

How it is proved #

The development lives in the SipserLautemann subdirectory:

What remained was the polynomial-time decidability of the matrix, isolated as the interfaces MatrixInP and — as a statement about a functionMatrixVerdictInFP. It is discharged by matrixVerdictInFP with no machine construction at all: CobhamFP_eq_FP turns it into a programming task inside Cobham's algebra, and mem_P_of_decisionFn_bool converts the result back to P. The verdict is computed in SipserLautemann.Verdict — decode the triple with the payload scanners, build the trial count and seed length as smash lengths from the polynomial time bound, and take the disjunction over shift blocks of the majority vote over trial blocks — with each trial one run of the machine along the choice bits of its block, via NTM.choiceTM and its in-algebra simulation in Complexitylib.Classes.P.Cobham.Internal.ChoiceSim. The matrix is taken at a polynomial time bound, which is what makes the per-trial step count computable from the input; TimeBound supplies the normalization.

Main definitions #

Main results #

Sipser–Lautemann: bounded-error probabilistic polynomial time lies in the second level of the polynomial hierarchy, BPP ⊆ Σ₂ᵖ ∩ Π₂ᵖ.

Stated as a Prop so that results can depend on it explicitly; it is proved from the MatrixInP interface by sipserLautemann_of_matrixInP.

Equations
Instances For

    The matrix-decidability interface. For every machine and every polynomial time bound, the quantifier-free matrix of the Lautemann characterization is decidable in deterministic polynomial time.

    A decider parses pair (pair x w) r, computes the per-trial step count pt.eval |x| and the amplified seed length from it, decodes the shift tuple and the seed, and for each shift runs the fixed machine on the shifted seed, block by block, taking the majority verdict; all of this is polynomial in the input length. Isolating it here keeps the probabilistic and combinatorial content of the theorem free of machine engineering.

    Equations
    Instances For

      The matrix interface as a function statement. For every machine and every polynomial time bound, the matrix verdict is computable in deterministic polynomial time.

      This is the form to discharge: by CobhamFP_eq_FP it suffices to build the verdict inside Cobham's algebra, with NTM.choiceTM_simulates supplying the semantics of running the machine along given choice bits.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        A polynomial-time verdict function gives the polynomial-time matrix language.

        Every BPP language is in Σ₂ᵖ, given the matrix interface.

        theorem Complexity.mem_PiP_two_of_matrixInP (hmatrix : MatrixInP) {L : Language} (hL : L BPP) :
        L PiP 2

        Every BPP language is in Π₂ᵖ, given the matrix interface: the complementary covering characterization puts the complement in Σ₂ᵖ.

        The Sipser–Lautemann theorem, given the matrix-decidability interface: BPP ⊆ Σ₂ᵖ ∩ Π₂ᵖ.

        The Sipser–Lautemann theorem, given the matrix interface in its function form.

        The statement splits into its two halves: containment in Σ₂ᵖ and containment in Π₂ᵖ.

        The Σ₂ᵖ half of the statement.

        The Π₂ᵖ half of the statement.

        The Σ₂ᵖ half implies the full statement, given that BPP is closed under complement: a language of BPP lies in Π₂ᵖ exactly when its complement lies in Σ₂ᵖ, and the complement is again a BPP language.

        Sipser–Lautemann puts BPP inside the polynomial hierarchy.

        The matrix interface holds. The verdict is computed inside Cobham's algebra — decode the triple with the payload scanners, build the trial count and seed length as smash lengths from the time bound, and take the disjunction over shift blocks of the majority vote over trial blocks, each trial being one run of the machine along the choice bits of its block — and CobhamFP_eq_FP makes that a polynomial-time function.

        The Sipser–Lautemann theorem: bounded-error probabilistic polynomial time lies in the second level of the polynomial hierarchy, BPP ⊆ Σ₂ᵖ ∩ Π₂ᵖ (Arora–Barak Theorem 7.15).

        BPP ⊆ Σ₂ᵖ.

        BPP ⊆ Π₂ᵖ.

        BPP lies inside the polynomial hierarchy.