Documentation

DescriptiveComplexity.PSpace

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 #

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
    @[reducible, inline]

    coPSPACE, the complement class of PSPACE. That it coincides with PSPACE (Savitch) is not proved here (see the module docstring).

    Equations
    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
        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.

          Dependency graph

          NP ⊆ PSPACE: NP is Σ₁-definability (Fagin) and PSPACE is SO(TC) definability, and an existential block is a walk that guesses its state and stops.

          Dependency graph