Correctness of the uniform tableau circuit #
The tableau circuit of a multi-tape machine
(Complexity/Computability/Circuit/Boolean/Tableau/Basic.lean) computes the run: on an input
x of length n, for T steps with n < 2 T, the wire of each feature at time t ≤ T carries
the value of that feature in the configuration after t steps
(Cslib.Circuits.Boolean.Tableau.invariant_le). In particular the output wire is true exactly when
the output written after T steps is [true] (Cslib.Circuits.Boolean.Tableau.evalOutput_gates),
and the tableau circuit outputs this value (Cslib.Circuits.Boolean.Tableau.eval_circuit).
The proof follows the blocks. In block t + 1, the scan accumulates the symbols under the heads
across the columns, the global gates compute the situation and the attributes of the action, and
the gadget of each feature computes the disjunction of its terms, which is the step equation of
the feature.
Main definitions #
Cslib.Circuits.Boolean.Tableau.val: the value of a numbered tableau wire.Cslib.Circuits.Boolean.Tableau.colSem,Cslib.Circuits.Boolean.Tableau.gfSem: the column and global features of a machine configuration.Cslib.Circuits.Boolean.Tableau.Invariant: the agreement of feature wires with the run.
Main results #
Cslib.Circuits.Boolean.Tableau.invariant_le: the features at every timet ≤ T.Cslib.Circuits.Boolean.Tableau.evalOutput_gates: the output wire carries the answer.Cslib.Circuits.Boolean.Tableau.eval_circuit: the tableau circuit outputs the answer.
References #
Values of wires #
The value of wire w of the tableau of tm for T steps, on the input x.
Instances For
The value of a numbered gate is its operation applied to the values of its arguments.
The features of configurations #
The value of a column feature in column c of a configuration: the input head at c, the
work heads and the work cells at c - T.
Instances For
The value of a global feature of a configuration.
Instances For
Whether the action of the step from a configuration has the attribute v: never, once
halted.
Instances For
The invariant at time t: the wire of every feature carries its value after t steps.
Instances For
The first block holds the initial configuration.
Values of references #
The symbol read by a head of a configuration.
Instances For
The value of a term of a feature, from block t and column c: both of its wires are true.
Instances For
The scan #
Situations and attributes #
The gadgets of the features #
The step equations of the features #
One step of the simulation: the invariant passes from block t to block t + 1.
The tableau computes the run: on an input of length n < 2 T, the wire of each feature at
time t ≤ T carries the value of that feature after t steps.
The output wire of the tableau carries the answer: on an input of length n < 2 T, it is
true exactly when the output written after T steps is [true].
The tableau circuit outputs the answer: on inputs y of length n < 2 T, it outputs
whether tm, started on y, has written exactly [true] after T steps.