Deterministic space classes #
Cslib.Complexity.DSPACE enc s consists of the problems that some machine with a binary alphabet
and finitely many states decides within space c₁ * s n + c₂, for constants c₁ and c₂, on
instances whose encoding under enc has length n. Space counts visited work-tape cells; the
input tape is read-only and the output tape write-only. The time bound may depend on the input
length, with no prescribed growth rate. By configuration counting this is equivalent to
allowing any halting time bound (Cslib.Complexity.mem_DSPACE_iff).
The definition follows the shape proposed in cslib pull request #767, for encoded instances.
The concrete classes expose their DSPACE characterizations in Classes.LogSpace and
Classes.Space.
Main definitions #
Cslib.Complexity.DSPACE: deterministic space classes.
Main results #
Cslib.Complexity.mem_DSPACE_iff: membership with an arbitrary time bound.Cslib.Complexity.DSPACE_mono,Cslib.Complexity.DSPACE_mono_of_eventually_le: monotonicity.Cslib.Complexity.DSPACE_subset_of_le_mul_add: absorb constant factors and additive constants.
References #
The problems decidable within space O(s n), that is c₁ * s n + c₂ for constants c₁ and
c₂, on instances whose encoding under enc has length n, by a machine with a binary alphabet
and finitely many states, within some time bound of n Sipser, Definition 8.2.
Instances For
Membership in DSPACE asks for no particular time bound: a machine that halts within the
space bound halts within the number of its configurations, a function of the length of the
encoded instance (Turing.MultiTapeTM.ComputableInTimeAndSpace.exists_time_of_length).