An unconditional, content-agnostic wipe step #
Reusing an opaque machine's scratch tapes across calls needs them genuinely
blank in between, but an arbitrary machine may leave gaps — an isolated blank
cell with more content beyond it — and a content-driven scanner
(TM.blankWorkTM stops at the first blank) under-wipes there. TM.wipeStepTM
writes Γ.blank to every targeted tape and advances, unconditionally, never
reading what it overwrites; iterated a known number of times it blanks an exact
number of cells whatever was there.
Main results #
TM.wipeStepTM— blank one cell of every targeted tape and advanceTM.wipeStepTM_hoareTime— its one-step contract
Control states of the unconditional wipe-step machine.
- running : WipeStepPhase
Write blank to every targeted tape and advance; then halt.
- done : WipeStepPhase
Halted.
Instances For
Equations
- Complexity.TM.instFintypeWipeStepPhase = { elems := {Complexity.TM.WipeStepPhase.running, Complexity.TM.WipeStepPhase.done}, complete := ⋯ }
One unconditional step: every work tape named in targets is written
Γ.blank and its head advances right; every other work tape, the input, and
the output are held by readBackWrite/idleDir. Does not inspect the
targeted tapes' contents at all.
Equations
- One or more equations did not get rendered due to their size.
Instances For
wipeStepTM's exact one-step Hoare contract. From tapes where every
non-targeted work tape, the input, and the output are Parked, one step
unconditionally blanks and advances every targeted work tape and preserves
everything else exactly.