A second-order quantifier prefix, played as a game #
The theorem: every second-order sentence – an alternating prefix of block
quantifiers over a first-order kernel – defines a second-order alternating game
(DescriptiveComplexity.SOGameSpec.accepts_gameOfSO), whence
DescriptiveComplexity.SigmaSODefinable.soGameDefinable and SO ⊆ SO-GAME.
It is the game counterpart of
DescriptiveComplexity.sotcDefinable_soProblem, which peels the same prefix
into the state of a walk. A walk can only guess, so a universal block has to
be complemented away there; a game has universal moves, so the prefix is peeled
one block at a time with no complementation
(DescriptiveComplexity.SOGameSpec.exBlock).
The construction #
DescriptiveComplexity.SOGameSpec.exBlock prefixes a game with one quantified
block. Its states are the assignments of SOBlock.cons B spec.B extended by a
phase (DescriptiveComplexity.SOGameSpec.Phase, three arity-0 tag bits, as
DescriptiveComplexity.SOBlock.withTag supplies them):
pick– the quantified block is chosen, by the existential or the universal player according to the polarity;start– the existential player chooses a starting state of the inner game. This phase is always existential and it is what a stuck position means: a specification with no starting state loses here, which is exactlyDescriptiveComplexity.SOGameSpec.Acceptsbeing false;play– the inner game is played, the chosen block frozen by every move (DescriptiveComplexity.SOGameSpec.frozenS).
Splitting pick from start is what makes the universal case correct: were the
choice of a starting state folded into a universal pick move, a block
assignment admitting no starting state would contribute no move at all and so
be silently skipped by the universal clause of
DescriptiveComplexity.SOGameSpec.Wins, instead of refuting it.
The phases #
The three phases of a prefixed game.
- pick : Phase
The quantified block is being chosen.
- start : Phase
A starting state of the inner game is being chosen.
- play : Phase
The inner game is being played.
Instances For
Dependency graph
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
The state block #
The states of a prefixed game: an assignment of the quantified block, one of the inner game's block, and a phase.
Equations
Instances For
Dependency graph
The state of a prefixed game at a phase, a chosen block and an inner state.
Equations
Instances For
Dependency graph
Dependency graph
Reading the inner game's sentences #
The inner game's one-copy vocabulary, read in a prefixed state: the quantified block and the inner block land in their components.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The inner game's one-copy vocabulary, read in the second copy of a prefixed state – what the move into the playing phase needs, the inner game's starting condition being about the state the move enters.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The inner game's two-copy vocabulary, read in a prefixed move: the quantified block is read in the first copy, which every move freezes.
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
Dependency graph
Dependency graph
The phase, and freezing the quantified block #
The tag bit of a phase, in a one-copy state.
Equations
Instances For
Dependency graph
The state is a well-formed one at the phase p.
Equations
Instances For
Dependency graph
The tag bit of a phase, in the second copy of a two-copy state.
Equations
Instances For
Dependency graph
The second copy is a well-formed state at the phase p: its bit is set and
every other is not.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The relation variable i of the quantified block, in the first copy.
Equations
Instances For
Dependency graph
The relation variable i of the quantified block, in the second copy.
Instances For
Dependency graph
The quantified block's variable i is unchanged by the move.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The quantified block is frozen: every move of the playing phase leaves it alone.
Equations
Instances For
Dependency graph
Dependency graph
Dependency graph
A well-formed state: one whose tag bits name a phase.
Dependency graph
The argument tuple of a tag variable is the empty one, whatever it is.
Dependency graph
The tag bit of the second copy, read at an arbitrary state.
Dependency graph
Dependency graph
Dependency graph
The guarded phase of the second copy pins its shape: a move that asserts it lands on a well-formed state.
Dependency graph
Freezing, read #
Dependency graph
Dependency graph
The prefixed game #
Dependency graph
A game, prefixed with one quantified block: the block is chosen at the
phase pick by the player the polarity names, a starting state of the inner
game at the phase start, and the inner game is played from there with the
block frozen.
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
Every move lands on a well-formed state: each disjunct guards the tag bits of the state it enters.
Dependency graph
What the prefixed game wins #
The playing phase plays the inner game, from a win of the prefixed game back to one of the inner one.
Dependency graph
The playing phase plays the inner game, from a win of the inner game to one of the prefixed game.
Dependency graph
Dependency graph
The starting phase chooses a starting state of the inner game: it is existential, and it is stuck exactly when the inner game has no starting state.
Dependency graph
Dependency graph
The picking phase quantifies the block, existentially or universally as the polarity says.
Dependency graph
Dependency graph
What a prefixed game accepts: what the inner game accepts, under the quantified block.
Dependency graph
The kernel, as a game with no move #
The game that decides a first-order sentence: no move, and the sentence decides the only position.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The prefix, peeled one block at a time #
The game a second-order sentence defines: one quantified block per block of the prefix, and the kernel at the end.
Equations
- DescriptiveComplexity.SOGameSpec.gameOfSO [] x✝² x✝ x✝¹ = DescriptiveComplexity.SOGameSpec.kernelGame x✝² x✝
- DescriptiveComplexity.SOGameSpec.gameOfSO (B :: Bs) x✝² x✝ x✝¹ = DescriptiveComplexity.SOGameSpec.exBlock x✝² B x✝¹ (DescriptiveComplexity.SOGameSpec.gameOfSO Bs (x✝².sum B.lang) x✝ !x✝¹)
Instances For
Dependency graph
A second-order sentence is a second-order alternating game.
Dependency graph
SO ⊆ SO-GAME #
Every Σₖ-definable problem is a second-order alternating game.
Dependency graph
Every Πₖ-definable problem is a second-order alternating game.
Dependency graph
Every level of the polynomial hierarchy is a second-order alternating
game. Level 0 goes through PTIME ⊆ NP, the other levels are the definition
of DescriptiveComplexity.SigmaP read through
DescriptiveComplexity.SigmaSODefinable.soGameDefinable.
Dependency graph
PH ⊆ SO-GAME: every problem of the polynomial hierarchy is the value
of a second-order alternating game. Read with
DescriptiveComplexity.SOGameDefinable.mem_EXPTIME it re-proves PH ⊆ EXPTIME,
this time through a game rather than through PSPACE.
Dependency graph
A first-order property of an expansion #
A first-order property of an exponential expansion is a second-order
alternating game: its quantifiers become second-order blocks over the base
(DescriptiveComplexity.ExpExpansion.exists_translate) and the blocks become
moves. This is the game reading of
DescriptiveComplexity.ExpExpansion.mem_PH_of_fo_on_expansion, and it is what a
guard of a fixed-point rule over an expansion will be evaluated by.