Documentation

DescriptiveComplexity.Exponential.GameSO

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):

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
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    Dependency graph

    The state block #

    @[reducible, inline]

    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

              The phase, and freezing the quantified block #

              @[reducible, inline]

              The tag bit of a phase, in a one-copy state.

              Equations
              Instances For
                Dependency graph
                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
                    @[reducible, inline]

                    The relation variable i of the quantified block, in the first copy.

                    Equations
                    Instances For
                      Dependency graph
                      @[reducible, inline]

                      The relation variable i of the quantified block, in the second copy.

                      Equations
                      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

                            Freezing, read #

                            The prefixed game #

                            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

                              What the prefixed game wins #

                              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

                                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
                                Instances For
                                  Dependency graph
                                  theorem DescriptiveComplexity.SOGameSpec.accepts_gameOfSO (Bs : List SOBlock) (L : FirstOrder.Language) (A : Type) (instL : L.Structure A) [LinearOrder A] (φ : (soLang L Bs).Sentence) (pol : Bool) :
                                  (gameOfSO Bs L φ pol).Accepts A ↔ SORealize L A Bs φ pol

                                  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

                                  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 #