All initialized runs have common finite symbol support
ProvedPvsNP.reachable_symbols_finiteFor every fixed machine, one finite tagged-symbol set contains all stack symbols reachable from every finite input word. This does not assert finiteness of ambient work-symbol types.
Status: Local proof checked; unpublished draft statement.
import Definitions.Def_PvsNPSupport
namespace PvsNP
theorem reachable_symbols_finite (M : Turing.FinTM2) :
∃ S : Set (Sigma M.Γ), S.Finite ∧
∀ (w : List (M.Γ M.k₀)) (c : M.Cfg),
Turing.TM2.Reaches M.m (Turing.initList M w) c → SupportedStacks M S c.stk := by sorry
end PvsNPRead-back
What the Lean code literally says, in plain math · gpt-6-astra
For every machine , there exists a single finite set of tagged symbols such that, for every finite input-alphabet word and every configuration of , if is reachable by zero or more transitions from the configuration with main label, initial control state, on the input stack, and all other stacks empty, then . A configuration consists of an optional current label, a control state, and a stack family; a nonhalted configuration transitions by executing the statement at its current label, while a halted configuration has no transition. Reachability is the reflexive transitive closure of these transitions, so the initial configuration itself is included. The set is chosen before and works uniformly for all inputs, all finite execution prefixes, and any reachable halted configuration; no termination assumption or finite-work-alphabet assumption is present. 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. Executing one statement pushes the symbol selected by the current state, peeks at or pops the current stack head (using an absent-head value for an empty stack and an empty tail when popping it), or changes the control state as specified, then executes the continuation; a branch executes its selected body, and jump/halt returns a configuration with a label/no label and unchanged stacks. A jump does not execute the next labeled statement within this same statement execution.