Polynomial-time closure for the Lautemann shifted-cover verifier
ProvedSipserGacsLautemann.cover_verifier_decides_in_polynomial_timeLet be a Boolean predicate decided in polynomial time by the mission's deterministic two-tape Turing-machine model. Given an input , an encoded list of translations , and a universal string , decode translations of width . Then the shifted-cover predicate
is decidable in polynomial time. Bits outside the supplied encoding are read as zero, exactly as prescribed by the mission's decoding function.
This is the computational closure lemma for the Lautemann-cover half of the Sipser–Gács–Lautemann formalization. It requires only simulations of the verifier machine, plus polynomial-time decoding and bitwise exclusive-or.
Formalization Note The decoded translations and existential test are exactly decodeCoverTranslationConstruction and coverVerifierConstruction.
import Definitions.Def_sipser_gacs_lautemann import Definitions.Def_sgl_verifier_constructions
namespace SipserGacsLautemann
theorem cover_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 3 → List Bool =>
coverVerifierConstruction (input 2).length verifier
(input 0) (input 1) (input 2) = true) := by
sorry
end SipserGacsLautemann