The graph game, as a second-order alternating game #
The four sentences of DescriptiveComplexity.ExpExpansion.graphGame, and what
each of them says. Every one is a static disjunction over the phase type,
which is finite: the phases carry the tags of the two nodes a state holds, so
naming a tag costs a disjunct rather than a quantifier.
univ– the phasesDescriptiveComplexity.Ph.IsUnivselects, and nothing else;won– a leafpre s tx ty 0 pol, conjoined with that question's kernel. The leaf is existential and has no move, so a false kernel loses: a player who asked for a proof he cannot give is stuck there;start– astartPickphase whose rounds all hold points (DescriptiveComplexity.ExpExpansion.allRoundsPointF), which is the invariant every node move preserves and every prefix consumes;move– one disjunct per pair of a phase and one of the movesDescriptiveComplexity.ExpExpansion.movesFromallows out of it. A move names its target phase exactly (DescriptiveComplexity.atTagTwoF, so no junk state is reachable), lists the rounds it carries over – kept, shifted, or neither – and lists the rounds of the state it enters that it guards to be points.
The one asymmetry worth naming: the move that fills a play round guards
nothing. DescriptiveComplexity.altBlockQuant ranges over all assignments and
the point guards of a prefix live inside its kernel
(DescriptiveComplexity.ExpExpansion.stepF), so guarding there would count them
twice and break the correspondence with
DescriptiveComplexity.ExpExpansion.exists_paramKernel.
The rounds a move carries over #
Carry over every round: the move freezes the state.
Equations
- DescriptiveComplexity.keepAll n = List.map (fun (i : Fin n) => (i, i)) (List.finRange n)
Instances For
Dependency graph
Carry over every round outside S, in place.
Equations
- DescriptiveComplexity.keepOff n S = List.map (fun (i : Fin n) => (i, i)) (List.filter (fun (i : Fin n) => !S i) (List.finRange n))
Instances For
Dependency graph
The rounds holding the second node's points.
Instances For
Dependency graph
The rounds holding the second node's points, as a list.
Equations
Instances For
Dependency graph
Where round i of the state a shifting move enters reads from: the second
node's points become the first node's.
Instances For
Dependency graph
Carry the second node's points onto the first node's slots.
Equations
- DescriptiveComplexity.keepShift d n h = List.map (fun (i : Fin n) => (DescriptiveComplexity.shiftIx d n h i, i)) (List.finRange n)
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The moves out of a phase #
A move of the graph game, seen from the phase it leaves: where it goes, which rounds it carries over – as pairs (round of the state left, round of the state entered) – and which rounds of the state entered it guards to hold a point.
- tgt : Ph T Dm
The phase the move enters.
The rounds it carries over.
The rounds of the state it enters that it guards to hold a point.
Instances For
Dependency graph
Entering the prefix that decides the question s about the nodes tagged
tx, ty: nothing moves, and all D s tx ty play rounds are still to
fill.
Equations
- DescriptiveComplexity.ExpExpansion.preEntry D hD s tx ty = { tgt := DescriptiveComplexity.Ph.pre s tx ty ⟨D s tx ty, ⋯⟩ true, keep := DescriptiveComplexity.keepAll n, guard := [] }
Instances For
Dependency graph
The moves out of each phase. This is the game.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The four sentences #
The sentence of one move: it names the phase it leaves and the phase it enters, carries its rounds over, and guards the rounds it says are points.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The graph game: the game whose positions are the nodes of the AND/OR graph an interpretation draws on the expanded universe, together with the prefix positions that decide the six questions about them.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
What the four sentences say #
Dependency graph
The one-copy structure a state of the graph game is read against.
Equations
- DescriptiveComplexity.ExpExpansion.stateStructure σ = (X.gameBlock n T Dm).structure₁ σ
Instances For
Dependency graph
The universal positions are the phases Ph.IsUniv names.
Dependency graph
The positions that win outright are the leaves whose kernel holds.
Dependency graph
The starting positions are the startPick states whose rounds are all
points.
Dependency graph
The moves are the listed ones.
Dependency graph
Every move lands on a state: each disjunct pins the tag bits of the state it enters, so a junk assignment is never reachable.