PH ⊆ PSPACE #
The theorem: every level of the polynomial hierarchy is inside polynomial
space (DescriptiveComplexity.PH_subset_PSPACE). A Σₖ sentence is not a walk,
so this is not a syntactic inclusion; it is two closure properties of SO(TC) put
together, alternated along the quantifier prefix:
- complement (
DescriptiveComplexity.SOTCDefinable.compl, i.e.PSPACE = coPSPACE, proved inDescriptiveComplexity.PSpaceCompl), which turns a universal block into an existential one; - prefixing an existential block
(
DescriptiveComplexity.SOTCDefinable.exBlock): a walk can carry a guessed block in its own state and never touch it again, so∃R̄. (SO(TC) condition)is again an SO(TC) condition.
The second is the construction of this file. The state of
DescriptiveComplexity.SOTCSpec.exBlock is an assignment of the merged block
DescriptiveComplexity.SOBlock.cons; its transition sentence is the conjunction
of DescriptiveComplexity.fixedS – the guessed component is unchanged, one
universally quantified equivalence per relation variable of it – with the inner
transition sentence read through DescriptiveComplexity.consTwoLHom; and its
endpoints are the inner ones read through DescriptiveComplexity.consOneLHom.
Because a step never moves the guessed component, a whole walk keeps it fixed
(DescriptiveComplexity.exBlock_reach), so accepting is accepting the inner walk
under some assignment of it (DescriptiveComplexity.exBlock_accepts_iff).
The prefix is then peeled one block at a time
(DescriptiveComplexity.sotcDefinable_soProblem), the base case being that a
first-order sentence is a walk with a trivial block and no step. Level 0 of the
hierarchy is not second-order at all and goes through PTIME ⊆ NP ⊆ PSPACE.
Reading a spec over a block expansion through the merge #
The renaming of a one-copy expansion: the symbols of the guessed block B
land in the left component of the merged block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The renaming of a two-copy expansion: the symbols of the guessed block land in the left component of the first copy of the merged block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
The guessed block does not change #
The relation variable i of the guessed block, in the first copy of the
merged block.
Instances For
Dependency graph
The relation variable i of the guessed block, in the second copy.
Instances For
Dependency graph
The relation variable i of the guessed block has the same value in the two
copies of the merged block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The whole guessed block is unchanged by a step.
Equations
Instances For
Dependency graph
Dependency graph
Dependency graph
Prefixing a specification with a guessed block #
The walk that guesses a block first: its state is an assignment of the
merged block, its transition sentence says that the guessed part does not change
and that the rest takes a step of spec, and its endpoints are those of
spec.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The guessed block is the same all along a walk, and the rest of the state walks in the inner specification.
Dependency graph
Dependency graph
What the guessing walk accepts: exactly what the inner walk accepts, under some assignment of the guessed block.
Dependency graph
SO(TC) is closed under prefixing an existential second-order block: the walk carries the guessed block in its own state and never touches it again.
Dependency graph
Down the quantifier prefix #
The decision problem defined by a second-order sentence with a given
quantifier prefix: isomorphism-invariant by
DescriptiveComplexity.sorealize_iso.
Equations
- DescriptiveComplexity.soProblem L Bs φ pol = { Holds := fun (A : Type) (inst : L.Structure A) => DescriptiveComplexity.SORealize L A Bs φ pol, iso_invariant := ⋯ }
Instances For
Dependency graph
The base case: a first-order sentence is an SO(TC) condition – a walk with a trivial block and no step.
Dependency graph
Every second-order sentence defines an SO(TC) condition: peel the prefix one block at a time, guessing an existential block into the state of the walk and complementing at a universal one.
Dependency graph
PH ⊆ PSPACE #
Every Σₖ-definable problem is SO(TC) definable.
Dependency graph
Every level of the polynomial hierarchy is inside PSPACE.
Dependency graph
PH ⊆ PSPACE: the polynomial hierarchy is inside polynomial space.