The simulating machine on a zipper tape #
The simulation of Turing.ToPartrec.step by
DescriptiveComplexity.HaltHard.simStep is proved against a concrete
sequential semantics first: a configuration is a zipper
(DescriptiveComplexity.HaltHard.LCfg) – the state, the letters left of the
head (nearest first), the letter under the head, and the letters right of the
head (nearest first) – and one step (DescriptiveComplexity.HaltHard.lstep)
applies the table and moves, materialising a blank when the head leaves the
recorded region. This keeps every walk argument a plain list induction; the
sibling Bridge file identifies runs of lstep with derivations of the
rewriting system DescriptiveComplexity.HaltPcp.MRule of the drawn machine,
so nothing here mentions words or rules.
Beside the step and its reachability
(DescriptiveComplexity.HaltHard.Reach, and the step-counted
DescriptiveComplexity.HaltHard.stepsTo the deterministic backward reading
needs), the file provides the two walk combinators: a state that passes a
set of letters unchanged in one direction crosses any run of them
(DescriptiveComplexity.HaltHard.reach_walkR/reach_walkL). Every phase of
the simulation is a chain of these.
A configuration of the simulating machine, as a zipper: the letters left of the head are listed nearest-first, the letters right of the head nearest-first. Cells outside the recorded region are blank; a move beyond it materialises the blank.
- q : SimQ c
The current state.
The letters left of the head, nearest first.
- s : SimSym c
The letter under the head.
The letters right of the head, nearest first.
Instances For
Dependency graph
One step of the machine on the zipper tape: apply the table, write, move; a move beyond the recorded region reads a fresh blank.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Reachability in any number of machine steps.
Equations
Instances For
Dependency graph
Reaching one configuration from another in exactly n steps.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.HaltHard.stepsTo 0 x✝¹ x✝ = (x✝¹ = x✝)
Instances For
Dependency graph
The four single steps #
A right move with a recorded cell to enter.
Dependency graph
A right move off the recorded region: the entered cell is blank.
Dependency graph
A left move with a recorded cell to enter.
Dependency graph
A left move off the recorded region: the entered cell is blank.
Dependency graph
A right move into a run of blanks – recorded or materialised, the entered cell is blank either way.
Dependency graph
A left move into a run of blanks – recorded or materialised, the entered cell is blank either way.
Dependency graph
Reachability #
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Counted steps, and determinism #
A counted run, extended by one step at its end.
Dependency graph
Counted runs compose.
Dependency graph
Reachability is a counted run of some length.
Dependency graph
The machine is deterministic: a counted run to anywhere follows the run to a terminal configuration, step for step.
Dependency graph
A run cannot leave a terminal configuration, so it is at least as long as any run from the same start.
Dependency graph
The walk combinators #
A state that passes a set of letters unchanged in one direction crosses any run of them. The head starts on the first letter of the run and ends on the first letter beyond it; the crossed letters pile up behind the head in reverse.
Walking right over a run of passed letters, rewriting each by f –
the transducing form: erasure sweeps take f := fun _ => .bk, unpriming
takes the unpriming map.
Dependency graph
Walking left over a run of passed letters, rewriting each by f.
Dependency graph
Walking right over a run of passed letters, unchanged.