Space bounds for the CSLib multi-tape simulation #
The simulator TM.toMultiTape keeps each CSLib work head at the position of
the head it simulates: data and marker tapes follow our work and output heads,
and the overshoot counter sits h - (|x| + 1) cells right of position 0 when
our input head is at h. The rewind phase only walks the output copy back to
cell 0 and then to cell 1. So when every reachable configuration of tm
obeys Cfg.WithinDecisionSpace with bound S, every CSLib head stays in the
interval [0, S + 1], and the simulator uses at most (2n + 3) (S + 2) cells
(TM.toMultiTape_computesFun_space).
All work heads of d lie in the interval [0, B].
Equations
- Complexity.MultiTape.PosBound B d = ∀ (i : Fin k), 0 ≤ d.workTapePos i ∧ d.workTapePos i ≤ ↑B
Instances For
If every work head stays in [0, B] for the first t steps, the run uses
at most k (B + 1) cells.
A simulated configuration within the decision-space bound s keeps every
CSLib head in [0, s + 1].
Every prefix of a run of our machine is simulated by the same prefix of the simulator's run.
The whole rewind phase from output-head position m keeps every CSLib head
in [0, B] when 1 ≤ B.
The simulator decides what tm decides, space-faithfully. If tm
decides L within time T and space S, the simulator decides L within time
2 T + 4 and space (2n + 3) (S + 2).