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:
Covering— Lautemann's covering lemma in both directions, by counting shifts of an event in the seed space;TimeBound— the acceptance probability is frozen past the halting time, so a machine's arbitrary time bound may be replaced by a dominating polynomial;Amplified— majority amplification plus the covering lemma give the∃∀characterizationx ∈ L ↔ ∃ shifts, ∀ seeds, some shift accepts, and its complementary form forx ∉ L;Encode— bitstring codecs for seeds and shift tuples;Matrix— the quantifier-free matrix as a language of encoded triples, and the identity exhibitingLandLᶜas polynomially bounded∃∀forms over it;Verdict— the matrix verdict as a member of Cobham's algebra, hence inFP.
What remained was the polynomial-time decidability of the matrix, isolated as
the interfaces MatrixInP and — as a statement about a function —
MatrixVerdictInFP. 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 #
SipserLautemann— the statementBPP ⊆ SigmaP 2 ∩ PiP 2MatrixInP— the polynomial-time decidability interface for the matrixMatrixVerdictInFP— the same interface as a statement about a function
Main results #
sipserLautemann— the theorem,BPP ⊆ Σ₂ᵖ ∩ Π₂ᵖBPP_subset_SigmaP_two,BPP_subset_PiP_two,BPP_subset_PH— its halves and the corollarymatrixVerdictInFP— the matrix interface, dischargedsipserLautemann_of_matrixInP,sipserLautemann_of_verdictInFP— the theorem from either form of the interfacematrixInP_of_verdictInFP— the function form implies the language formmem_SigmaP_two_of_matrixInP,mem_PiP_two_of_matrixInP— the two halvessipserLautemann_iff— the statement splits into itsΣ₂andΠ₂halvessipserLautemann_of_subset_SigmaP— theΣ₂half suffices, given thatBPPis closed under complementBPP_subset_SigmaP_two_of_sipserLautemann,BPP_subset_PiP_two_of_sipserLautemann— the two halvesBPP_subset_PH_of_sipserLautemann—BPP ⊆ PH
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
- Complexity.MatrixInP = ∀ (k : ℕ) (tm : Complexity.NTM k) (pt : Polynomial ℕ) (b : Bool), Complexity.Lautemann.matrixLang tm (fun (x : ℕ) => Polynomial.eval x pt) b ∈ Complexity.P
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.
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).