Boolean formulas for one Turing-machine transition #
This file defines the proof-free formula layer for one step of a bounded
nondeterministic Turing-machine trace. A TransitionCase records a complete
local view of the machine, including its choice bit. Its TransitionEffect
names the otherwise deeply nested components returned by NTM.δ.
The formulas read one encoded configuration block and produce the value of
each atom in its halted-or-successor configuration. Input cells are preserved,
writable cell zero is immutable, writes use the old head position, and head
movement uses saturated subtraction at the left boundary. A right move from
the largest represented head position has no represented target; clients rule
out that case with HeadsLt before applying transition correctness.
Select a writable work/output tape from a machine configuration.
Equations
Instances For
A complete finite local view determining one nondeterministic transition.
- choice : Bool
The nondeterministic or probabilistic choice bit for this step.
- state : tm.Q
The current control state.
- inputRead : Γ
The symbol under the input head.
The symbol under each work-tape head.
- outputRead : Γ
The symbol under the output head.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Complete local transition views form a finite type.
Equations
- One or more equations did not get rendered due to their size.
Select the read symbol for a named tape from a transition case.
Equations
- view.read Complexity.CircuitUnrolling.TapeSlot.input = view.inputRead
- view.read (Complexity.CircuitUnrolling.TapeSlot.work i) = view.workRead i
- view.read Complexity.CircuitUnrolling.TapeSlot.output = view.outputRead
Instances For
The named components of the action returned by NTM.δ for a local view.
- nextState : tm.Q
The successor control state.
The symbol written on each work tape before its head moves.
- outputWrite : Γw
The symbol written on the output tape before its head moves.
- inputMove : Dir3
The input-head movement.
Each work-head movement.
- outputMove : Dir3
The output-head movement.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Select the write symbol for a named writable tape.
Equations
- effect.write (Complexity.CircuitUnrolling.WritableSlot.work i) = effect.workWrite i
- effect.write Complexity.CircuitUnrolling.WritableSlot.output = effect.outputWrite
Instances For
Select the movement of any named tape head.
Equations
- effect.move Complexity.CircuitUnrolling.TapeSlot.input = effect.inputMove
- effect.move (Complexity.CircuitUnrolling.TapeSlot.work i) = effect.workMove i
- effect.move Complexity.CircuitUnrolling.TapeSlot.output = effect.outputMove
Instances For
Unpack the transition action selected by a complete local view.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every possible local view, in the finite ordering induced by Fintype.
Instances For
Every named head lies strictly below T.
For the layout with head positions Fin (T + 1), this excludes the sole
position whose right successor would fall outside the represented block.
Equations
- Complexity.CircuitUnrolling.HeadsLt T c = ∀ (tape : Complexity.CircuitUnrolling.TapeSlot k), (Complexity.CircuitUnrolling.TapeSlot.get c tape).head < T
Instances For
The formula variable carrying an atom of the incoming configuration.
Equations
- Complexity.CircuitUnrolling.configVar tm T base atom = Complexity.BoolFormula.var (Complexity.CircuitUnrolling.configWire tm T base atom)
Instances For
The incoming configuration's halted-state bit.
Equations
Instances For
Formula recognizing one complete local transition case.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Select transition cases whose named effect satisfies a Boolean test.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Formula selecting transition cases with a specified successor state.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Formula selecting transition cases that move a named head in a given direction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Formula selecting transition cases that write a specified symbol.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Numeric head position after one move, with saturated movement at zero.
Equations
- Complexity.CircuitUnrolling.movedHeadPosition position Complexity.Dir3.left = position - 1
- Complexity.CircuitUnrolling.movedHeadPosition position Complexity.Dir3.right = position + 1
- Complexity.CircuitUnrolling.movedHeadPosition position Complexity.Dir3.stay = position
Instances For
Incoming head positions that reach a target under one fixed direction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Formula saying that the old head is at a represented cell position.
The final cell in Fin (T + 2) has no corresponding old head position and
therefore produces false.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Choose the old atom when halted and a transition formula otherwise.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Formula for a positive writable cell after the write phase of one step.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Formula for one atom of the halted-or-successor configuration.
Input cells never change. Writable cell zero also never changes, because
Tape.write is a no-op there. Every other writable cell is updated at the old
head position before the head movement represented by the head atoms.
Equations
- One or more equations did not get rendered due to their size.