Reading the verdict cell out of a record #
⚠️ Unreviewed by Bolton
Acceptance is a property of cell 1 of the output tape, but a code stores each
tape split at its head, so where cell 1 sits depends on the head. Driving the
head back to cell 0 first puts it in a fixed place: the encoding's right
half-block is then the whole tape in order, two bits per cell, so cell 1 is
bits 2 and 3.
That is the same rewind the completeness direction of Cobham's theorem uses to
read a simulated machine's output, Cobham.rewindFn, run here as a loop of its
own.
Main definitions #
Complexity.outPair— the output tape's two blocks, read out of a recordComplexity.rewindStepP— one rewind step, on the packed stateComplexity.rewindCode— a whole rewind
Main results #
Complexity.outPair_cfgCode— the two blocks are the output tape's codeComplexity.rewindCode_pairCode— a long enough rewind parks the headComplexity.rewindStepP_mem_FP,Complexity.rewindCodeFn_mem_FP— both are polynomial-time
The output tape inside a record #
Block 3 is the output tape's left half.
Block 4 is the output tape's right half.
The output tape's code, read out of a record.
Equations
- Complexity.outPair R u = Complexity.blockAt R u 3 ++ Complexity.blockAt R u 4
Instances For
The two blocks are the output tape's code.
The rewind loop #
One rewind step, on the packed state pair R z.
Equations
Instances For
A whole rewind: one step per bit of the ruler.
Equations
- Complexity.rewindCode R ruler z = Complexity.pairSnd (Complexity.rewindStepP^[ruler.length] (Complexity.pair R z))
Instances For
A long enough rewind parks the head at cell 0.