Predictive first moves of the characteristic PDA #
The final-state-to-empty-stack PDA is nondeterministic only at a normalized final state, where it may either continue simulating the DPDA or enter its stack-draining state. For a computation segment with a fixed target state, one symbol of input lookahead makes the first productive move unique. The normalizer's no-repeated-final theorem rules out the sole epsilon/epsilon ambiguity at end of input.
A first-move signature is enabled at (q,input,Z).
- read {Q T S : Type} [Fintype Q] [Fintype T] [Fintype S] {M : DPDA Q T S} {q : EState M} {Z : EStack M} (a : T) (tail : List T) (p : EState M) (alpha : List (EStack M)) (h : (p, alpha) ∈ (emptyStackPDA M).transition_fun q a Z) : HasFirstMove M q Z (a :: tail) { consumes := true, nextState := p, replacement := alpha }
- epsilon {Q T S : Type} [Fintype Q] [Fintype T] [Fintype S] {M : DPDA Q T S} {q : EState M} {Z : EStack M} (input : List T) (p : EState M) (alpha : List (EStack M)) (h : (p, alpha) ∈ (emptyStackPDA M).transition_fun' q Z) : HasFirstMove M q Z input { consumes := false, nextState := p, replacement := alpha }
Instances For
Remaining input after a move with the given signature.
Equations
Instances For
An enabled first move is productive for a fixed characteristic-nonterminal target when its successor can net-pop the replacement stack and finish in that target state.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Drain and simulation path facts #
Once the FS→ES construction enters its drain state, it never changes the remaining input.
While the FS→ES machine remains in simulation states with a stack made of
some symbols, its path projects to the normalized DPDA. If it reaches the
drain state, some normalized final configuration was reached first.