Documentation

DescriptiveComplexity.Exponential.Game

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

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.

Instances For
    Dependency graph
    @[reducible, inline]

    A state of the game: an assignment of the block.

    Equations
    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.

      Equations
      Instances For
        Dependency graph

        A state belongs to the universal player.

        Equations
        Instances For
          Dependency graph

          A state wins outright.

          Equations
          Instances For
            Dependency graph

            A state starts the game.

            Equations
            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.

              Instances For
                Dependency graph

                The structure is accepted: some starting state is winning.

                Equations
                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
                    @[instance_reducible]

                    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
                    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 #

                        theorem DescriptiveComplexity.SOGameSpec.agMove_toExp {L : FirstOrder.Language} (spec : SOGameSpec L) {A : Type} [L.Structure A] [LinearOrder A] (x y : spec.toExp.Map A) :
                        AGMove x y spec.Move (↑x).2 (↑y).2

                        The move symbol is the move sentence.

                        Dependency graph
                        theorem DescriptiveComplexity.SOGameSpec.agUniv_toExp {L : FirstOrder.Language} (spec : SOGameSpec L) {A : Type} [L.Structure A] [LinearOrder A] (x : spec.toExp.Map A) :
                        AGUniv x spec.IsUniv (↑x).2

                        The universal nodes are the universal states.

                        Dependency graph
                        theorem DescriptiveComplexity.SOGameSpec.agWon_toExp {L : FirstOrder.Language} (spec : SOGameSpec L) {A : Type} [L.Structure A] [LinearOrder A] (x : spec.toExp.Map A) :
                        AGWon x spec.IsWon (↑x).2

                        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.

                          Dependency graph