Documentation

DescriptiveComplexity.PSpaceCompl

PSPACE = coPSPACE #

The theorem: polynomial space is closed under complement. In this library PSPACE is defined by SO(TC) (DescriptiveComplexity.PSPACE), and the complement of a walk is not a walk, so this is not the definitional duality that gives PiP k from SigmaP k. It is assembled from three pieces:

That third piece is where the content sits, and it is the logical shadow of the machine-theoretic reason PSPACE is closed under complement: a space-bounded computation can be made deterministic (Savitch), and a deterministic decider is complemented by flipping its answer. Savitch's recursive doubling is what DescriptiveComplexity.Problems.Qsat.Hardness spends to turn the nondeterministic walk of an arbitrary SO(TC) specification into the deterministic evaluation of a quantified Boolean formula.

SO(TC) is closed under complement #

SO(TC) is closed under complement: the complement of an SO(TC) definable problem is SO(TC) definable.

Reduce to QSAT – through SUCCINCT-REACH and Savitch's recursive doubling – and read the deterministic evaluation walk of QSAT backwards.

Dependency graph

Complementation is a bijection of the SO(TC) definable problems.

Dependency graph

PSPACE = coPSPACE #

PSPACE = coPSPACE: polynomial space is closed under complement.

Dependency graph

Membership in PSPACE is closed under complement.

Dependency graph

QSAT is coPSPACE-complete, since PSPACE and coPSPACE coincide.

Dependency graph