Finite symbol support of a statement
ProvedPvsNP.stmtPushSymbols_finiteThe set of all tagged symbols explicitly pushable by a finite statement is finite.
Status: Local proof checked; unpublished draft statement.
import Definitions.Def_PvsNPSupport
namespace PvsNP
theorem stmtPushSymbols_finite (M : Turing.FinTM2) (q : M.Stmt) :
(stmtPushSymbols M q).Finite := by sorry
end PvsNPRead-back
What the Lean code literally says, in plain math · gpt-6-astra
For every machine and every one of its statements , the set described here is finite. This finiteness assertion concerns the tagged range of each push function over all control states and the finite statement syntax, not finiteness of every underlying stack alphabet. Here is a TM2 machine with a finite type of stack indices and decidable equality on , designated input and output indices , stack-symbol types , a finite type of program labels with a main label, a finite type of control states with an initial state, a finite input alphabet , and a statement for each label . No finiteness of for other is assumed. A tagged symbol has and ; tags from different stacks remain distinct. For a statement , its set of syntactically possible pushed tagged symbols is recursively defined: a push onto with symbol function and continuation contributes ; a peek, pop, or control-state load contributes only its continuation’s set; a conditional branch contributes the union of both branch sets; a jump to a program label and a halt contribute the empty set. Thus both branch bodies and all control states are counted, regardless of reachability, while a jump does not recursively inspect its target.