Convert a DFA D to a PDA over the same input alphabet that ignores its
stack (using a trivial stack alphabet PUnit). The PDA's transition mirrors
D.step on real input symbols and has no ε-transitions or stack moves.
Instances For
Any one-step transition of dfaToPDA D consumes a single input symbol a,
moves the DFA state via D.step, and leaves the stack unchanged.
Inverse direction: any reachable configuration of dfaToPDA D from an
empty-stack start has empty stack, and the consumed input is a prefix of the
remaining input that drives D.evalFrom from the start to the current state.
Sipser, Corollary 1 of Lecture 5. Every regular language is context-free. The proof converts the recognizing DFA into a stack-ignoring PDA, then uses the equivalence of PDAs and CFGs.