PSPACE, by second-order transitive closure #
The class PSPACE: the problems definable in SO(TC), second-order logic with
a transitive closure taken over assignments of a relation block
(DescriptiveComplexity.SOTCDefinable), which captures polynomial space on ordered
structures (Immerman 1999, ch. 10). This is the same
move as defining PTIME by the Horn fragment, NL by the Krom fragment and
NP by Σ₁-definability: the class is a definition, not an axiom, and it is
a bona fide DescriptiveComplexity.ComplexityClass because SO(TC) definability is
closed under (ordered) first-order reductions – the block and the three
sentences all survive the pullback, see
DescriptiveComplexity.SecondOrderTransitiveClosurePull.
Why the states are relations #
An SO(TC) walk remembers an assignment of relations, i.e. n^a bits on a
universe of size n, and may take exponentially many steps to reach its
target. That is precisely a polynomially space-bounded computation: the
configuration is the remembered assignment, and the (first-order) transition
sentence is one step of the machine. Immerman's capture theorem is the
statement that nothing is lost either way; here, as everywhere in this library,
the logic is taken as the definition of the class and the capture theorem is a
statement about machines, to be proved against a machine model rather than
assumed (see DescriptiveComplexity.Machines).
What is not free here #
- PSPACE = coPSPACE is not the definitional duality that gives
PiP kfromSigmaP k: the complement of an SO(TC) definable problem is not obviously SO(TC) definable. It is a genuine theorem, and it is proved – downstream, inDescriptiveComplexity.PSpaceCompl, once QSAT is available: every SO(TC) definable problem reduces to QSAT, complementing a reduction is free, and the walk that decides QSAT is deterministic, so reading its answer the other way round decides the complement. - PH ⊆ PSPACE is not a syntactic inclusion either: a
Σₖsentence is not a walk. It too is proved downstream, inDescriptiveComplexity.PSpaceHierarchy, by alternating that complement with the other closure property of SO(TC) – a walk can guess a block into its own state and never touch it again – along the quantifier prefix. What is immediate here is the bottom of the tower,NP ⊆ PSPACE(DescriptiveComplexity.NP_subset_PSPACE): an existential block is a walk that guesses its state in one step and then stops, soΣ₁-definability is SO(TC) definability with an empty transition relation. Everything below NP follows by composition.
The class PSPACE: the problems definable in SO(TC), second-order logic with a transitive closure over assignments of a relation block, which captures polynomial space on ordered structures (Immerman 1999).
Hardness is stated cofinally, exactly as for the other classes of this library
(DescriptiveComplexity.CofinalHard); over a relational vocabulary it is the usual
notion, DescriptiveComplexity.hard_PSPACE_iff.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Membership in PSPACE is exactly SO(TC) definability, by definition.
Dependency graph
Over a relational vocabulary, PSPACE-hardness is the usual notion: every
SO(TC) definable problem reduces to P.
Dependency graph
A problem is PSPACE-hard as soon as every SO(TC) definable problem reduces to it; the discharge shape shared by every PSPACE-hardness proof of the catalog.
Dependency graph
coPSPACE, the complement class of PSPACE. That it coincides with PSPACE (Savitch) is not proved here (see the module docstring).
Instances For
Dependency graph
NP ⊆ PSPACE: an existential block is a one-step walk #
A Σ₁ definition ∃ R̄. φ(R̄) is the SO(TC) specification whose states are the
assignments of the block, whose transition relation is empty, and whose
starting and accepting states are both the ones satisfying φ. Its walks are
the one-state walks, so it accepts exactly when some assignment satisfies φ.
The only work is that an SO(TC) specification's sentences live over the ordered expansion of the vocabulary, so the kernel has to be moved along the language map that inserts the order symbol.
The language map inserting the order vocabulary underneath a block
expansion: the kernel of a Σ₁ definition, which does not see the order, read
as a sentence of the vocabulary an SO(TC) specification uses.
Equations
Instances For
Dependency graph
Inserting the order symbol does not change how anything is interpreted.
Dependency graph
The lifted kernel realizes over the ordered expansion exactly as the original kernel realizes over the base expansion.
Dependency graph
The specification of a Σ₁ definition: the states are the assignments of
the block, there are no transitions, and the accepting states are the ones
satisfying the kernel.
Equations
- DescriptiveComplexity.sigmaOneSpec L B φ = { B := B, step := ⊥, src := (DescriptiveComplexity.blockOrderLift L B).onSentence φ, tgt := (DescriptiveComplexity.blockOrderLift L B).onSentence φ }
Instances For
Dependency graph
The one-step walk of a Σ₁ definition accepts exactly when the kernel is
satisfiable in the block.
Dependency graph
Every Σ₁-definable problem is SO(TC) definable: guess the block in
the state, take no step.