Hand-stepped runs of machines with one work tape #
Scaffolding for verifying small machines with one work tape step by step, as in
Turing.MultiTapeTM.ZipTransducer.toTM and Turing.MultiTapeTM.TakeDropUnary.toTM. A
configuration is written as cfgAt w st p tape h o with the input head at p (clamped to the
input), and a run segment Seg tm S c c' t records that tm reaches c' from c within t
steps while its work head stays in S. Segments compose, so a bound on the cells used by a whole
run follows from the bounds of its phases.
Main definitions #
Turing.MultiTapeTM.OneWorkTape.cfgAt: a configuration of a machine with one work tape.Turing.MultiTapeTM.OneWorkTape.Seg: a run segment whose work head stays in a set of cells.Turing.MultiTapeTM.OneWorkTape.cells: the cells-1, …, n.
Main results #
Turing.MultiTapeTM.OneWorkTape.step_cfgAt: one step fromcfgAt, read off the transition function.Turing.MultiTapeTM.OneWorkTape.Seg.refl,.single,.trans,.mono: composing run segments.
Moving right from a position before the right end cell.
Not moving.
Moving left from a position on the input tape.
Configurations #
The configuration in state st with the input head at p (clamped to the input), the work
tape tape with its head at h, and the output o.
Instances For
One step of a machine with one work tape, read off a transition function f on the input
symbol and the work-tape symbol.
Configurations agree when their clamped input positions and their work heads do.
The cells -1, …, n: the left end marker cell and a word of length n.
Instances For
Runs through a set of work-head positions #
The empty segment.
A segment of one step.
A segment within t steps is within any larger number of steps.