Circuits simulating multi-tape machines #
The run of a multi-tape machine over Bool on inputs of length n is simulated by a circuit,
time step by time step. At each step t the circuit holds the basic features
(Turing.MultiTapeTM.Feature) of the configuration: the control state, the input head, the work
heads and the work cells within the window |z| ≤ T, and the view of the output. From them it
derives the symbols read and the situation of the step, and from the terms of the step equations
(Turing.MultiTapeTM.Feature.stepTerms) each basic feature at time t + 1 with a constant number
of gates. Running for T steps takes O(T · (n + T)) gates
Sipser, Theorem 9.30.
The language of the inputs on which the machine has written [true] after T n steps is
therefore in P/poly whenever T is polynomially bounded (acceptedWithin_mem_PPoly); this is
the core of P ⊆ P/poly Arora and Barak, Theorem 6.6.
Main definitions #
Cslib.Circuits.Boolean.MachineSimulation.featureFn: a feature at timet, as a Boolean function of the input.Cslib.Circuits.Boolean.MachineSimulation.acceptedWithin: the inputs on which the output afterT nsteps is[true].
Main results #
Cslib.Circuits.Boolean.MachineSimulation.synthesis_step: one step, from the basic features at timetto those at timet + 1.Cslib.Circuits.Boolean.MachineSimulation.synthesis_basic: the basic features at every timet ≤ T, from the inputs.Cslib.Circuits.Boolean.MachineSimulation.acceptedWithin_mem_PPoly.
References #
The configuration of tm after t steps on the input x.
Instances For
A feature of the configuration after t steps, as a Boolean function of the input.
Instances For
The input symbol at position j is s, as a Boolean function of the input.
Instances For
Feature sets #
The basic features within the window |z| ≤ T, for inputs of length n
(Turing.MultiTapeTM.Feature.basic).
Instances For
The basic features at time t, as Boolean functions of the input.
Instances For
The symbols read at time t, as Boolean functions of the input.
Instances For
The situations at time t, as Boolean functions of the input.
Instances For
What is available for the third phase of a step: the inputs, the basic features, the symbols read and the situations.
Instances For
One step #
The symbol read by a work head, from the heads and cells in the window.
The symbol read by the input head, from its position and the input bits.
The cost of the first phase of a step.
Instances For
Phase 1: the symbols read, from the basic features and the inputs.
The indicator of a situation, from the state and the symbols read.
Phase 2: every situation indicator.
Phase 3: the next configuration #
The budget for one basic feature of the next configuration: its step equation has at most
4 |Situation| + 2 terms (Turing.MultiTapeTM.Feature.length_stepTerms_le), each of at most three
literals.
Instances For
Every basic feature of the next configuration, from the terms of its step equation.
Phase 3: all basic features of the next configuration.
One step of the simulation: the basic features at time t + 1, from those at time t.
The whole run #
The basic features at time 0, which do not depend on the input.
The simulation: the basic features at every time t ≤ T, from the inputs.
The simulation cost is polynomially bounded when the number of steps is.
The inputs on which tm has written [true] after T n steps, on inputs of length n.
Instances For
An input is accepted within T steps when the machine has written [true] by then.
Machines with polynomial running time have polynomial circuits. The inputs on which a
machine has written [true] within a polynomially bounded number of steps form a language in
P/poly.