Polynomial-time closure under ternary-majority amplification
ProvedSipserGacsLautemann.ternary_amplified_verifier_decides_in_polynomial_timeLet be a Boolean predicate decided in polynomial time by the mission's deterministic two-tape Turing-machine model. For an input , put
Split the supplied random string into padded blocks of equal inferred width, evaluate on every block, and combine those values with the complete depth- ternary tree whose internal gate is majority-of-three. The resulting predicate
is decidable in polynomial time.
This is the computational closure lemma for the amplification half of the Sipser–Gács–Lautemann formalization. The number of oracle-machine simulations is polynomial because is polynomial in , and each inferred block has length at most .
Formalization Note The block padding, ternary reshaping, recursive vote, and depth are exactly ternaryAmplifiedVerifierConstruction and its published helper definitions.
import Definitions.Def_sipser_gacs_lautemann import Definitions.Def_sgl_verifier_constructions
namespace SipserGacsLautemann
theorem ternary_amplified_verifier_decides_in_polynomial_time
(verifier : List Bool → List Bool → Bool)
(hverifier :
DecidesInPolynomialTime
(fun input : Fin 2 → List Bool =>
verifier (input 0) (input 1) = true)) :
DecidesInPolynomialTime
(fun input : Fin 2 → List Bool =>
ternaryAmplifiedVerifierConstruction verifier
(input 0) (input 1) = true) := by
sorry
end SipserGacsLautemann