First-order configuration graphs #
A configuration of a nondeterministic machine with k binary work tapes is a fixed tuple of
registers (Turing.MultiTapeNTM.ConfigurationGraph.Register k): the input head position, the
control tag, the output tag and, for each work tape, the head symbol and the ternary codes of the
two stacks beside it. This file defines that graph by first-order formulas over the canonical
numeric vocabulary (order, BIT, zero, one and maximum, with exact addition) on a universe
Fin N: one universe element per register.
The input is read through two caller-supplied formulas: inputFormula s holds of a position
exactly when the input symbol there is s (including both endmarkers), and lengthFormula
holds exactly of the input length. Every formula has its exact semantics on every universe
Fin N with w.length < N. A step whose successor registers would exceed the universe is not
defined: no universe element denotes the successor, which is exactly the behaviour of
RegisterStep restricted to tuples of Fin N.
Main definitions #
Cslib.Complexity.ConfigurationGraph.stepFormula: one step on register tuples.Cslib.Complexity.ConfigurationGraph.startFormula: the start registers.Cslib.Complexity.ConfigurationGraph.acceptFormula: halted registers with output tag1.
Main results #
Cslib.Complexity.ConfigurationGraph.realize_stepFormula: the step formula definesRegisterStepexactly.Cslib.Complexity.ConfigurationGraph.realize_startFormula,Cslib.Complexity.ConfigurationGraph.realize_acceptFormula: start and acceptance.
References #
- N. Immerman, Languages That Capture Complexity Classes, proof of Theorem 3.1: an instantaneous description of a logarithmic-space machine is coded by a fixed tuple of variables, and its successor relation is first-order. Here each register is one universe element and the arithmetic is the exact addition of the canonical numeric vocabulary; the formulas are original.
- M. Sipser, Introduction to the Theory of Computation, Section 8.4
The input head position after a move by d from x, clamped to the endmarkers 0 and
n + 1, where lengthFormula holds exactly of the input length n.
Instances For
The head symbol after an optional write: unchanged by none, the written symbol's code
otherwise.
Instances For
The three registers of one work tape after the action a: head h, left stack l and right
stack r become h', l' and r'. The written head symbol is bound to a fresh variable.
Instances For
The output tag after an optional emission (outputStep).
Instances For
The registers Y are the successor registers nextRegisters of X under the action a.
Instances For
The registers X have the observations of the transition table entry t: its control
state, the input symbol under the input head and the work-tape head symbols.
Instances For
One step of the configuration graph on register tuples: either X is halted and
Y = X, or X has the observations of some transition table entry and Y is its successor.
Instances For
The registers X are the start registers of ntm.
Instances For
The registers X are halted with output tag 1.
Instances For
The input-move formula has the exact semantics of inputMove, given a length formula that
holds exactly of the input length n.
The tape formula has the exact semantics of tapeStep.
The output formula has the exact semantics of outputStep.
The successor formula has the exact semantics of nextRegisters.
The matching formula has the exact semantics of a transition table lookup.
The step formula defines the configuration graph on register tuples: on every universe
Fin N with w.length < N, it holds exactly of RegisterStep between the values of its tuples.
The start formula holds exactly of the start registers.
The acceptance formula holds exactly of halted registers with output tag 1.