Redirecting the output to a work tape #
outputToTape tm behaves like tm, except that whatever tm would append to the write-only
output tape is written on a fresh work tape instead, whose head always stands at the write
frontier.
Since the output is append-only, the frontier position is a function of the configuration —
the length of the output so far — so the redirected machine mirrors the original through the
configuration map outCfg, a homomorphism of step relations (outCfgHom), so each run path of tm
maps to a run path of the redirected machine.
tm, with its output writes redirected onto a fresh last work tape, whose head always stands
at the write frontier.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A configuration of tm, as the redirected machine sees it: the output so far sits on the
last work tape with the head at its end, and the real output is empty.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The redirection preserves steps, so it maps run paths of tm to run paths of the redirected
machine.
Equations
- tm.outCfgHom = ⋯.stepHom Turing.MultiTapeTM.outCfg ⋯ ⋯ ⋯
Instances For
The initial configuration of the redirected machine is the original's through outCfg.
Space of the output-redirected path. The k inner tapes visit exactly what the original
path visits, and the frontier head only walks up to the final length of the output, so the
redirection costs at most the final output length plus one.