Nondeterministic Multi-Tape Turing Machines #
Defines nondeterministic Turing machines with a read-only input tape, k work tapes and one
write-only output tape, their computation paths, and time bounds.
Design #
The design choices for configurations and actions are documented in
Cslib.Computability.Machines.Turing.MultiTape.Configuration.
Following [Pap94a], chapter 2.7, a nondeterministic machine is a Turing machine whose
transition function is replaced by a transition relation: Tr q input work action holds when Tr
relates the state q and the read symbols input and work to action.
A halted configuration steps to itself, so once a machine has halted it has a run of every length. A time bound is therefore an upper bound, with no separate account of the step at which it halted.
The transition relation may be empty at a running configuration. Such a configuration has no successor configuration and is called stuck.
Time bounds apply to every computation path, regardless of its outcome. RunsInTime input t
requires every path of at least t steps to end in a halted configuration.
Important Declarations #
MultiTapeNTM: the machine, an initial state and a transition relationStep: the one-step relation on configurationsRunPath: finite relation series of stepsComputationPath: a run path starting at the initial configurationRunsInTime: every computation path of at least the given length ends in a halted configuration
References #
A nondeterministic multi-tape Turing machine with k work tapes over the alphabet of
Option Symbol (where none is the blank symbol). Neither Symbol nor State is required to be
finite.
- q₀ : State
initial state
- Tr (q : State) (input : Option Symbol) (work : Fin k → Option Symbol) (action : Action k Symbol State) : Prop
transition relation: which combinations of state, current input symbol, tuple of work head symbols and resulting actions are valid transitions
Instances For
The one-step relation on configurations. A halted configuration steps only to itself. A running
configuration steps by applying any action related to its state and read symbols by Tr.
Instances For
The initial configuration corresponding to an input string.
Instances For
The one-step relation on configurations for input, as a set of pairs.
Instances For
The steps of ntm from running configurations: the steps within a run until it halts.
Instances For
A nonempty list of configurations joined by steps of ntm.
Instances For
A run path mapped along a step-preserving map of configurations: RelSeries.map, typed as a
run path of the target machine.
Instances For
Once a run path is halted, its configuration stays unchanged.
The number of steps taken by a run path.
Instances For
A path that ends halted runs from its head to its last configuration in running steps, up to its first halted configuration.
A machine never reads its output tape, so prepending a word to the output preserves steps.
Instances For
A run path starting at the initial configuration for input.
- toFun : Fin (self.length + 1) → Turing.Cfg k Symbol State input
the path starts at the initial configuration
Instances For
The number of steps taken by a computation path.
Instances For
Every computation path on input of at least t steps ends in a halted configuration.
A path ending in a stuck configuration must have fewer than t steps.
Instances For
A time bound can be increased.