CSLib multi-tape computations run on Complexitylib machines #
CSLib measures the complexity of a language through its multi-tape machines
(Turing.MultiTapeTM): MultiTapeTM.DecidableInTimeAndSpace L enc t s says
that some machine over the binary alphabet with finitely many states decides
L within time t x and space s x on every input x, emitting the single
bit true on inputs in L and false otherwise.
This file proves the converse of Complexitylib.Interop.Cslib.MultiTape: a
CSLib computation runs on our machines with a constant-factor time overhead. The
simulator FromMultiTape.toTM
(Complexitylib.Interop.Cslib.FromMultiTape.Defs) folds each two-way CSLib
work tape onto one of our one-sided work tapes and spends three of its steps
on each CSLib step. It preserves the entire output string and its terminating
blank, so the same simulation covers string functions, including empty outputs.
Main results #
Complexity.decidesInTime_of_decidableInTimeAndSpace— a CSLib decider within timetyields one of our deciders within time3 tComplexity.mem_DTIME_of_decidableInTimeAndSpace— CSLib-decidable within timetimpliesDTIME(t)Complexity.mem_P_of_decidableInTimeAndSpace— CSLib-decidable within polynomial time impliesPComplexity.computesInTime_of_computableInTimeAndSpace— a CSLib string computation within timetyields a canonical computation within time3 tComplexity.mem_FP_of_computableInTimeAndSpace— CSLib-computable string functions within polynomial time belong toFP
A fixed CSLib machine computes the same complete string on the canonical simulator.
CSLib string computations transfer to the canonical machine model with time factor three.
Every polynomial-time CSLib string function belongs to canonical FP.
A CSLib decider runs on Complexitylib. If a CSLib multi-tape machine
decides L within time t in the input length (and any space), one of our
machines decides L within time 3 t.
CSLib time transfers to DTIME. A language decided by a CSLib
multi-tape machine within time t in the input length lies in DTIME(t).
CSLib polynomial time transfers to P. A language decided by a CSLib
multi-tape machine within polynomial time in the input length lies in P.