Documentation

DescriptiveComplexity.Problems.MachineAltSpace.Guards

The guards of the alternating machine, and the configuration block #

The first of the three layers that put DescriptiveComplexity.ATMAcceptSpace in EXPTIME. Everything here is bookkeeping:

The block has a binary variable for the tape because a DescriptiveComplexity.Config carries a function A → A; that the variable is one is the content of DescriptiveComplexity.ATMSpace.isCfgS, and DescriptiveComplexity.ATMSpace.cfgOf is the assignment a configuration is.

The ordered vocabulary and its symbols #

@[reducible, inline]

The ordered expansion of the alternating machine vocabulary, at two blocks.

Equations
Instances For
    Dependency graph
    Dependency graph
    Dependency graph
    Dependency graph
    @[reducible, inline]

    The accepting-state symbol.

    Equations
    Instances For
      Dependency graph
      Dependency graph
      Dependency graph
      @[reducible, inline]

      The order symbol of the machine.

      Equations
      Instances For
        Dependency graph
        @[reducible, inline]

        The transition-source symbol.

        Equations
        Instances For
          Dependency graph
          Dependency graph
          @[reducible, inline]

          The transition-destination symbol.

          Equations
          Instances For
            Dependency graph
            Dependency graph
            Dependency graph
            @[reducible, inline]

            The mark of the i-th player.

            Equations
            Instances For
              Dependency graph

              One guard per symbol #

              Dependency graph
              Dependency graph
              Dependency graph
              Dependency graph
              Dependency graph
              Dependency graph
              noncomputable def DescriptiveComplexity.ATMSpace.blkG {γ : Type} (i : Fin 2) (x : γ) :

              x is marked by the i-th player.

              Equations
              Instances For
                Dependency graph
                Dependency graph
                Dependency graph
                Dependency graph
                Dependency graph
                Dependency graph
                noncomputable def DescriptiveComplexity.ATMSpace.inpG {γ : Type} (x y : γ) :

                The cell x initially holds the input symbol y.

                Equations
                Instances For
                  Dependency graph
                  noncomputable def DescriptiveComplexity.ATMSpace.eqG {γ : Type} (x y : γ) :

                  x and y are the same element.

                  Equations
                  Instances For
                    Dependency graph
                    Dependency graph
                    @[simp]
                    Dependency graph
                    Dependency graph
                    @[simp]
                    Dependency graph
                    Dependency graph
                    Dependency graph
                    Dependency graph
                    @[simp]
                    theorem DescriptiveComplexity.ATMSpace.realize_leG {γ A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {v : γA} (x y : γ) :
                    (leG x y).Realize v ATMLe (v x) (v y)
                    Dependency graph
                    @[simp]
                    theorem DescriptiveComplexity.ATMSpace.realize_srcG {γ A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {v : γA} (x y : γ) :
                    (srcG x y).Realize v ATMSrc (v x) (v y)
                    Dependency graph
                    @[simp]
                    theorem DescriptiveComplexity.ATMSpace.realize_readG {γ A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {v : γA} (x y : γ) :
                    (readG x y).Realize v ATMRead (v x) (v y)
                    Dependency graph
                    @[simp]
                    theorem DescriptiveComplexity.ATMSpace.realize_dstG {γ A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {v : γA} (x y : γ) :
                    (dstG x y).Realize v ATMDst (v x) (v y)
                    Dependency graph
                    @[simp]
                    theorem DescriptiveComplexity.ATMSpace.realize_writeG {γ A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {v : γA} (x y : γ) :
                    (writeG x y).Realize v ATMWrite (v x) (v y)
                    Dependency graph
                    @[simp]
                    theorem DescriptiveComplexity.ATMSpace.realize_inpG {γ A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {v : γA} (x y : γ) :
                    (inpG x y).Realize v ATMInp (v x) (v y)
                    Dependency graph
                    @[simp]
                    theorem DescriptiveComplexity.ATMSpace.realize_eqG {γ A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {v : γA} (x y : γ) :
                    (eqG x y).Realize v v x = v y
                    Dependency graph

                    The derived guards #

                    noncomputable def DescriptiveComplexity.ATMSpace.minPosG {γ : Type} (x : γ) :

                    x is a least position.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      Dependency graph
                      noncomputable def DescriptiveComplexity.ATMSpace.succPosG {γ : Type} (x y : γ) :

                      y is the position immediately above x.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        Dependency graph
                        noncomputable def DescriptiveComplexity.ATMSpace.initTapeG {γ : Type} (x y : γ) :

                        The cell x may initially hold the symbol y.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          Dependency graph
                          Dependency graph
                          Dependency graph
                          @[simp]
                          theorem DescriptiveComplexity.ATMSpace.realize_initTapeG {γ A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {v : γA} (x y : γ) :
                          (initTapeG x y).Realize v (atmData 2 A).InitTape (v x) (v y)
                          Dependency graph

                          The two promises, as sentences #

                          The machine's order is linear.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Dependency graph

                            Well-formedness, as a sentence: the order is linear, there is a position, the input is functional, and there is exactly one blank.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Dependency graph

                              The two marks split the states, as a sentence: every state carries one of them and not both.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                Dependency graph
                                Dependency graph
                                Dependency graph

                                The two marks split the states exactly when every state carries one and not both: a mark index of 2 or more marks nothing, so the uniqueness clause of DescriptiveComplexity.ATMData.BlocksSplit only speaks about 0 and 1.

                                Dependency graph