The enumerator's loop, in space #
⚠️ Unreviewed by Bolton
The loop runs exponentially many iterations, so no bound derived from its total running time can
be polynomial. What is polynomial is one iteration, and every state the loop returns to has all
its heads at cell one — that is what TM.loopTM_keepsWindowOn_phases turns into a window for the
whole run.
Main results #
PolyExists.enumTest_keepsWindowOn— the test's window, straight from its running time
The loop's test keeps a window. Unlike the body, the test is short: its window is read off its running time.
The tapes the loop's body is entered on: the counting state at some count below the horizon.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The tapes the loop's test is entered on: what one pass leaves.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The tapes of the rewind-and-check phases: the same bank, with the verdict slot's head on its way back to cell one.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Leaving the body. When the pass halts, the tapes are the ones the test is entered on.
Leaving the test. Its verdict sits in the slot, and the loop begins rewinding it.
The bookkeeping phases. The rewind moves only the output head; the check either halts the loop or starts the next pass on the very same tapes.
The enumerator's loop keeps a window. The loop runs exponentially many iterations; what bounds its space is one iteration's width, and the fact that every state it returns to has all its heads at cell one.