A second-order alternating game is GAME on an exponential expansion #
The alternating counterpart of DescriptiveComplexity.Exponential.Reach, and
the way into EXPTIME that needs no succinctness argument. Compare the two
definitions, which are the same sentence up to the name of the universe:
SOGameSpec.Accepts A = ∃ ρ, spec.IsStart ρ ∧ spec.Wins ρ
GameWon M = ∃ s, AGStart s ∧ WinsOn M s
A DescriptiveComplexity.SOGameSpec is the game
DescriptiveComplexity.GAME reads on assignments of a second-order block:
four first-order sentences say which assignments the existential player owns,
which win outright, which start the game, and which moves are legal – the
transition seeing two copies of the block, as an
DescriptiveComplexity.SOTCSpec does. Its expansion
(DescriptiveComplexity.SOGameSpec.toExp) therefore takes Tag := Unit, no
domain restriction, the block of the specification, and the vocabulary of
AND/OR graphs, and its points are the states
(DescriptiveComplexity.SOGameSpec.toExpEquiv).
Since DescriptiveComplexity.GAME is in DescriptiveComplexity.PTIME, this
gives at once
DescriptiveComplexity.SOGameDefinable.mem_EXPTIME: a second-order alternating game is in EXPTIME,
which read on the definitions is SO-GAME ⊆ SO(LFP) – the second-order
shadow of GAME ∈ PTIME, exactly as
DescriptiveComplexity.PSPACE_subset_EXPTIME is the second-order shadow of
REACH ∈ PTIME.
What this is for #
Writing a machine's configuration graph as an expansion by hand means writing
its transition relation as a sentence over the base plus two copies of a block,
and nothing else: this file takes care of everything that is not those four
sentences. It is what an alternating space-bounded machine
(DescriptiveComplexity.ATMAcceptSpace) consumes, its configurations being the
assignments of a block with one variable for the state, one for the head and one
for the tape.
The specification #
A second-order alternating game: the states of the game are the
assignments of a block B, and four first-order sentences over the base
vocabulary expanded by the order and by copies of the block say which states are
universal, which win outright, which start the game, and which moves are legal.
The move sentence sees two copies of the block – the current state and the next
one – exactly as DescriptiveComplexity.SOTCSpec.step does.
The order is visible to all four sentences, as the ordered setting of the capture theorems allows; the problem itself does not see it.
- B : SOBlock
The block whose assignments are the states of the game.
The move sentence, over two copies of the block: the current state reads the first copy, the next state the second.
The sentence defining the states of the universal player.
The sentence defining the states that win outright.
The sentence defining the starting states.
Instances For
Dependency graph
A state of the game: an assignment of the block.
Equations
- spec.State A = spec.B.Assignment A
Instances For
Dependency graph
A legal move: the move sentence, read with the current state in the first copy of the block and the next state in the second.
Instances For
Dependency graph
A state belongs to the universal player.
Instances For
Dependency graph
A state wins outright.
Instances For
Dependency graph
A state starts the game.
Instances For
Dependency graph
The winning states, as a least fixed point: a state that wins outright, an existential state with a winning move, or a universal state that has a move and all of whose moves are winning.
- won
{L : FirstOrder.Language}
{spec : SOGameSpec L}
{A : Type}
[L.Structure A]
[LinearOrder A]
{ρ : spec.State A}
: spec.IsWon ρ → spec.Wins ρ
A state that wins outright.
- ex
{L : FirstOrder.Language}
{spec : SOGameSpec L}
{A : Type}
[L.Structure A]
[LinearOrder A]
{ρ σ : spec.State A}
: ¬spec.IsUniv ρ → spec.Move ρ σ → spec.Wins σ → spec.Wins ρ
An existential state with a winning move.
- all
{L : FirstOrder.Language}
{spec : SOGameSpec L}
{A : Type}
[L.Structure A]
[LinearOrder A]
{ρ : spec.State A}
: spec.IsUniv ρ →
(∃ (σ : spec.State A), spec.Move ρ σ) → (∀ (σ : spec.State A), spec.Move ρ σ → spec.Wins σ) → spec.Wins ρ
A universal state with a move, all of whose moves are winning.
Instances For
Dependency graph
The structure is accepted: some starting state is winning.
Instances For
Dependency graph
The expansion of a specification #
The expansion whose points are the states of the game: no tags, no domain restriction, and the four sentences of the specification defining the four symbols of the vocabulary of AND/OR graphs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The expanded structure of DescriptiveComplexity.SOGameSpec.toExp, at the
vocabulary of AND/OR graphs – equal to the expansion's own by definition, but
not syntactically, so instance search has to be handed it.
Equations
- spec.toExpStructure A = spec.toExp.mapStructure A
Instances For
Dependency graph
The domain of DescriptiveComplexity.SOGameSpec.toExp is the whole space of
tagged assignments: its domain sentence is ⊤.
Dependency graph
The points of the expansion are the states of the game.
Equations
Instances For
Dependency graph
The four symbols #
The move symbol is the move sentence.
Dependency graph
The universal nodes are the universal states.
Dependency graph
The nodes that win outright are the states that do.
Dependency graph
The marked starts are the starting states.
Dependency graph
Winning is winning #
The game accepts exactly when GAME holds of the expansion.
Dependency graph
Definability, and the class #
SO-GAME definability: the problem is the value of a second-order alternating game, on nonempty finite ordered structures.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
A second-order alternating game is GAME over an expanded universe: the game is the AND/OR graph the expansion draws, so any class containing GAME contains the problem one exponential up.
Dependency graph
A second-order alternating game is in EXPTIME. Read on the definitions
this is SO-GAME ⊆ SO(LFP) – the second-order shadow of GAME ∈ PTIME, and
the way into EXPTIME that needs no succinctness argument.