Running a decider from a work tape onto a work tape #
⚠️ Unreviewed by Bolton
TM.applyTM is stated for a machine computing a function: its contract asks for
TM.ComputesInTime and delivers Tape.HasOutput. A machine deciding a language is not a
transducer — nothing is claimed about its output tape beyond cell one — so a caller that wants to
run a decider inside a loop needs the same seam stated for a verdict.
That is what this file supplies. The proofs are the ones behind TM.applyTM_hoareTime and
TM.applyTM_hoareTime_frame, with TM.retargetInputStarted_decidesVirtual in place of its
computing counterpart.
Main results #
TM.retargetInputStarted_hoareTime_decide— the virtual-input seam, for a deciderTM.applyTM_hoareTime_decide— the work-to-work evaluator's contract, for a deciderTM.applyTM_hoareTime_decide_frame— the same with the disturbance framed, which is what a loop body needs in order to reset for the next callTM.applyTM_hoareTime_decide_space_frame— the frame taken from the source's space bound rather than its running time, which is the only version a space-bounded caller can afford
The virtual-input seam, for a decider. Started on the canonical entry configuration with
y on the last work tape, the wrapper halts inside the source's time bound with the source's
verdict on y in cell one of the real output.
The work-to-work evaluator, for a decider. The verdict lands in cell one of the fresh last work tape, and the real output stays the parked blank tape a wipe needs.
The decider's evaluator, with its disturbance framed. Beyond the verdict, this records
what a caller needs in order to reset for a second call: every tape's head is still within H,
and every cell beyond H is still blank. Both follow from the run being T |y|-bounded and
every entry tape being parked and blank past |y|.
The evaluator's entry configuration is the retargeted one, which is the form the window theorems are stated about.
The decider's evaluator, framed by its space bound. The disturbance is bounded by the source machine's space, not by its running time: a space-bounded machine may run for exponentially many steps, and a caller that had to wipe that many cells could not stay in polynomial space.