The operator pinned: PSPACE = NL.exp #
The check on DescriptiveComplexity.ComplexityClass.exp at the one level where
this library independently knows the answer, in both directions.
DescriptiveComplexity.PSPACE_subset_NL_exp is the easy half: an
DescriptiveComplexity.SOTCSpec is the graph REACH reads on the expansion
whose points are its states. This file closes the converse, so that the operator
is pinned rather than merely bounded.
The route #
Nondeterministic logarithmic space read over an expanded universe is machine
space, and the machine is the one the library already captures
(DescriptiveComplexity.tcDefinable_iff_automaton): a finite control with k
two-way heads, each holding one point of the expansion. Three steps:
- the walk witnessing
Q ∈ NLis carried to the trivialized expansion (DescriptiveComplexity.ExpExpansion.relSpec), where every tagged assignment is a point and the old universe survives as a mark – so that a head'ssuccis the plain binary increment and never has to skip anything; - that walk is compiled into a two-way multi-head automaton
(
DescriptiveComplexity.accepts_drvP), whose tests are quantifier-free by fiat; - the automaton is simulated by a walk over the base
(
DescriptiveComplexity.ExpExpansion.autoSpec), a configuration being one assignment of one block.
Nothing in the chain evaluates a quantifier ranging over the expanded universe, which is exactly the obstruction the translation lemma names.
What is and is not a corollary #
LOGSPACE.exp ⊆ PSPACE follows by monotonicity. The reverse inclusion does
not: DescriptiveComplexity.SOTCDefinable.expDefinable draws the graph of a
walk and then asks REACH of it, and REACH is not known to this library to be in
DescriptiveComplexity.LOGSPACE. LOGSPACE.exp = PSPACE would need the walk of
the expansion to be functional – a deterministic reachability argument, i.e.,
Savitch read one exponential up – and is not claimed here.
NL.exp ⊆ PSPACE: a problem that nondeterministic logarithmic space
decides over an exponentially larger definable universe is decided by a
polynomial-space walk over the base. The machine of the expansion holds k of
its points, a point is an assignment of a block, so a configuration of that
machine is one assignment of one block – a state of an
DescriptiveComplexity.SOTCSpec.
Dependency graph
PSPACE = NL.exp: polynomial space is nondeterministic logarithmic
space read one exponential up. Both inclusions are theorems – the easy one is
DescriptiveComplexity.PSPACE_subset_NL_exp – so the exponential operator is
pinned at this level, not merely bounded.
Dependency graph
LOGSPACE.exp ⊆ PSPACE, by monotonicity. The reverse inclusion is not
claimed; see the module docstring.
Dependency graph
NL.exp ⊆ EXPTIME sharpened: read through the gate, the inclusion
DescriptiveComplexity.NL_exp_subset_EXPTIME is just PSPACE ⊆ EXPTIME.