Finite-alphabet normalization for verifiers
OpenPvsNP.polyTimeChecker_iff_finiteA checker for tagged word pairs has a polynomial TM2 witness exactly when it has one with finite work alphabets.
Status: Known mathematics / implementation obligation awaiting formal proof.
import Definitions.Def_PvsNPFrontier
namespace PvsNP
theorem polyTimeChecker_iff_finite (R : Str × Str → Bool) :
PolyTimeChecker R ↔ FinitePolyTime encodePair Computability.encodeBool R := by sorry
end PvsNPRead-back
What the Lean code literally says, in plain math · gpt-6-astra
For every , holds if and only if there exists a polynomial-time witness of the same tagged-pair input and singleton Boolean output computation whose every stack alphabet is finite. The right-hand side quantifies over a potentially different machine and polynomial, and makes the output alphabet finite as well as all other stack alphabets. Here , is the set of all finite Boolean lists, including the empty list, and is list length. Write for existence of such a machine and a polynomial that, for all , compute in at most steps from the list obtained by tagging every bit of with the left injection into , tagging every bit of with the right injection, and concatenating those two lists. A machine in these assertions is a Mathlib TM2 stack machine with finitely many stack indices, instruction labels, and control states, a finite input-stack alphabet, designated input and output stacks, a program, and initial label and control state; its other stack alphabets need not be finite. Input and output alphabet bijections transport the specified encoded lists to the corresponding stack alphabets. Computation starts with only the input stack populated, and reaches a halted configuration with the specified output on the output stack, all other stacks empty, and the control state reset to its initial value. Time counts executions of whole TM2 statements, each of which may contain several stack operations. The supplied body is admitted with sorry; no proof of this assertion is supplied there.