Boolean features of configurations #
A configuration of a multi-tape machine over Bool is described by finitely-valued features:
the control state, the position of the input head, the position of each work head, the contents
of each work cell, and what has been written on the output (Turing.OutView). Three more
features say what a step depends on: the symbol under each work head, the symbol under the input
head, and the situation (Turing.MultiTapeTM.Situation) — the state together with all the
symbols read.
Each feature of the next configuration is a Boolean combination of features of the current one:
a halted configuration does not change, and otherwise exactly one situation holds, which
determines the action. The step equations (holds_step_state_iff, …) state this kind by kind.
For inputs of length n and work heads in the window |z| ≤ T, the basic features
(Feature.basic: state, input head, work heads and cells in the window, output view) come in
groups of which exactly one feature holds, and the step equation of each basic feature is a
disjunction of terms, conjunctions of basic features, their negations and situations
(Feature.stepTerms, holds_step_iff_exists_stepTerms). Reductions that describe runs by
Boolean variables, such as the Cook–Levin tableau, and circuits simulating machines are built on
these equations.
Main definitions #
Turing.MultiTapeTM.Situation,Turing.Cfg.situation.Turing.MultiTapeTM.Feature,Turing.MultiTapeTM.Feature.Holds.Turing.MultiTapeTM.Feature.groups,Turing.MultiTapeTM.Feature.basic: the basic features.Turing.MultiTapeTM.Feature.stepTerms: the terms of the step equation of a basic feature.
Main results #
Turing.MultiTapeTM.Feature.holds_read_iff,holds_inRead_iff,holds_sit_iff: the symbols read and the situation, from the basic features.Turing.MultiTapeTM.Feature.holds_step_state_iff,holds_step_inPos_iff,holds_step_head_iff,holds_step_cell_iff,holds_step_out_iff: the step equations.Turing.MultiTapeTM.Feature.exists_holds_of_mem_groups,eq_of_holds_of_mem_groups: exactly one basic feature of each group holds.Turing.MultiTapeTM.Feature.holds_step_iff_exists_stepTerms: the step equations as disjunctions of terms.
The cells -T, …, T of the window, from left to right.
Instances For
The situation of a step: the state, the symbol under the input head, and the symbols under the work heads. The transition function maps a situation to an action.
Instances For
The action that tm takes in situation y.
Instances For
The features describing configurations of a machine over Bool.
- state {k : ℕ} {State : Type} (q : Option State) : Feature k State
The control state is
q(noneonce halted). - inPos {k : ℕ} {State : Type} (j : ℕ) : Feature k State
The input head is at position
j. - head {k : ℕ} {State : Type} (i : Fin k) (z : ℤ) : Feature k State
The head of work tape
iis at cellz. - cell {k : ℕ} {State : Type} (i : Fin k) (z : ℤ) (s : Option Bool) : Feature k State
Cell
zof work tapeiholdss. - out {k : ℕ} {State : Type} (o : OutView) : Feature k State
The output written so far has view
o. - read {k : ℕ} {State : Type} (i : Fin k) (s : Option Bool) : Feature k State
The head of work tape
ireadss. - inRead {k : ℕ} {State : Type} (s : Option Bool) : Feature k State
The input head reads
s. - sit {k : ℕ} {State : Type} (y : Situation k State) : Feature k State
The configuration is running in situation
y.
Instances For
Instances For
The situation of a configuration running in state q.
Instances For
The symbols read and the situation #
The step equations #
The step equation for the state.
The step equation for the input head. The input head moves at most one cell, so it comes from
one of the positions j - 1, j, j + 1.
The step equation for a work head within the window |z| ≤ T, for a head that was within
the window.
Basic features and step terms #
The three symbols a cell can hold: blank, false and true.
Instances For
A term: a conjunction of features, written (φ, true), and of negated features, written
(φ, false).
Instances For
The basic features for inputs of length n within the window |z| ≤ T, in groups: the
states, the positions of the input head, the positions of each work head in the window, the
contents of each work cell in the window, and the views of the output. In a configuration on an
input of length n whose work heads are in the window, exactly one feature of each group holds
(exists_holds_of_mem_groups, eq_of_holds_of_mem_groups). The window |z| ≤ T contains every
cell that a head can reach within T steps.
Instances For
In a configuration whose work heads are in the window, some feature of each group holds.
At most one feature of each group holds.
The terms of the step equation of a basic feature, for inputs of length n and the window
|z| ≤ T: the feature holds after a step exactly when one of its terms holds before it
(holds_step_iff_exists_stepTerms). Every term is made of basic features, their negations, and
situations (mem_basic_of_mem_stepTerms).
Instances For
The step equation. Within the window, a basic feature holds after a step exactly when one of its terms holds before it.
A feature has at most 4 |Situation| + 2 terms in its step equation.
Every term of a step equation has at most three literals.
The terms of a basic feature are made of basic features, their negations, and situations.