Running one nondeterministic path deterministically #
An NTM's transition function has exactly the shape of a TM's, plus a
Bool. Feeding that Bool from a dedicated work tape — one cell per step,
scanned left to right and written back unchanged — turns the nondeterministic
machine into a deterministic one whose run is the chosen path.
This is the primitive that lets deterministic machines reason about
nondeterministic runs: a decider that must evaluate "does tm accept x along
choice sequence c" places c on the choice tape and runs choiceTM tm.
Main definitions #
NTM.choiceTM— the deterministic machine with a choice tape appendedNTM.dropChoice— forget the choice tape from a configurationNTM.choiceStream— the choice bits under and to the right of the head
Main results #
NTM.choiceTM_step— one step ofchoiceTMis one step of the pathNTM.choiceTM_simulates— aT-step run ofchoiceTMistm.trace Talong the choice bits found on the tape
The deterministic machine that runs one path of tm, reading its choice
bits from the appended last work tape: each step consults the cell under that
head, writes it back unchanged, and advances the head one cell right.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A T-step run of choiceTM is the T-step trace of tm along the
choice bits on the tape. The run stops early exactly when the path halts;
the choice tape is left untouched apart from its head, which advances one cell
per step.