Tape transformations with the input head anywhere #
A Turing.MultiTapeTM.TransformsTapes specification starts and ends with the input head on the
first symbol of the input. A machine that reads its input once, from left to right, keeps a
cursor there instead: its input head stays where the last round left it.
TransformsTapesAt is the same specification format with the position of the input head as part
of the precondition and the postcondition.
A machine that never needs the input is run with its input head frozen (freezeInput): then every
TransformsTapes specification of it holds at any position of the input head
(Turing.MultiTapeTM.TransformsTapes.freezeInput).
Main definitions #
Turing.MultiTapeTM.wordsCfgAt:Turing.wordsCfgwith the input head anywhere.Turing.MultiTapeTM.TransformsTapesAt: the specification format.Turing.MultiTapeTM.freezeInput: a machine run on a blank input, with its input head fixed.
Main results #
Turing.MultiTapeTM.transformsTapesAt_seq: sequential composition.Turing.MultiTapeTM.TransformsTapesAt.seq_eq: composition with normalized cursor, tape and emitted-word equalities.Turing.MultiTapeTM.TransformsTapes.freezeInput: a specification oftmgives one oftm.freezeInputat any position of the input head, which it keeps.Turing.MultiTapeTM.transformsTapesAt_rewindInput: rewinding the input head.
The configuration whose work tape i holds the word ws i with its head at the start, with
the input head at position p, in state q with output out.
Instances For
TransformsTapesAt tm P Q t s: started in its initial state with the input head at position
p and on tapes holding words ws with P input p ws, the machine is halted after t steps with
the input head at a position p', on tapes holding words ws', having appended emitted to the
output, with Q input p ws p' ws' emitted, and having used at most s work-tape cells.
Instances For
A stronger precondition, a weaker postcondition and larger bounds.
A TransformsTapes specification is a TransformsTapesAt specification with the input head at
the start before and after.
A TransformsTapesAt specification from and to the start of the input is a TransformsTapes
specification.
Sequential composition. If the postcondition of the first specification implies the precondition of the second, the composed machine performs the two one after the other.
Sequential composition with normalized cursor, tape and emitted-word equalities.
A fixed-input tape transformation, with its cursor equalities normalized.
Freezing the input head #
tm, run as if on a blank input: it reads a blank on the input tape and never moves its input
head.
Instances For
A specification of tm on the empty input is a specification of tm.freezeInput at any
position of the input head, which it keeps.
A fixed tape transformation at an unchanged cursor, with normalized equalities.
Rewinding the input head #
rewindInput on a machine with k work tapes.
Instances For
rewindInputOn k Symbol moves the input head from anywhere on the input x back to its start
and changes nothing else.
TransformsWordsAt tm x p p' ws ws' e t s: on the input x with the input head at the
position p, the machine tm takes the words ws to the words ws' emitting e, with the input
head ending at p', within t steps and s work-tape cells.
Instances For
A specification read on given words, on the input x with the input head at p.
A specification given by equations, with the input head fixed.
Other spellings of the positions, the words and the emitted word.
Sequential composition: the position and the words left by the first machine are those the second one starts on, and the emitted words are concatenated.