Documentation

DescriptiveComplexity.Problems.MachineAltSpace.Spec

The configuration block, and the four sentences of the machine #

The second layer: the block whose assignments are the configurations, and the DescriptiveComplexity.SOGameSpec an alternating machine is.

The two promises DescriptiveComplexity.TMData.WellFormed and DescriptiveComplexity.ATMData.BlocksSplit are conjoined to start: DescriptiveComplexity.ExpDefinable compares P A with Q (X.Map A) and has nowhere else to put a condition on A alone.

The block #

The relation variables a configuration is made of.

  • st : CIx

    The current state.

  • hd : CIx

    The cell the head is on.

  • tp : CIx

    The contents of each cell.

Instances For
    Dependency graph
    Dependency graph
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    Dependency graph
    @[reducible, inline]

    The configuration block: a unary variable for the state, a unary one for the head, and a binary one for the tape.

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

      The atoms of the block #

      Dependency graph
      Dependency graph
      Dependency graph
      Dependency graph
      Dependency graph
      Dependency graph
      Dependency graph
      Dependency graph
      Dependency graph
      Dependency graph
      Dependency graph
      Dependency graph
      noncomputable def DescriptiveComplexity.ATMSpace.stAF {γ : Type} (x : γ) :

      x is the state of the current configuration.

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

        x is the head of the current configuration.

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

          The cell x holds y in the current configuration.

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

            x is the state of the next configuration.

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

              x is the head of the next configuration.

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

                The cell x holds y in the next configuration.

                Equations
                Instances For
                  Dependency graph
                  noncomputable def DescriptiveComplexity.ATMSpace.lift1 {γ : Type} (φ : tmaOrd.Formula γ) :

                  A base guard, read at one copy of the block.

                  Equations
                  Instances For
                    Dependency graph
                    noncomputable def DescriptiveComplexity.ATMSpace.lift2 {γ : Type} (φ : tmaOrd.Formula γ) :

                    A base guard, read at two copies of the block.

                    Equations
                    Instances For
                      Dependency graph

                      What an assignment says #

                      Dependency graph
                      Dependency graph

                      The tape an assignment names.

                      Equations
                      Instances For
                        Dependency graph
                        theorem DescriptiveComplexity.ATMSpace.apply₁ {A : Type} (f : (Fin 1A)Prop) (v : Fin 1A) :
                        f v f fun (x : Fin 1) => v 0

                        A unary variable is read at its only argument.

                        Dependency graph
                        theorem DescriptiveComplexity.ATMSpace.apply₂ {A : Type} (f : (Fin 2A)Prop) (v : Fin 2A) :
                        f v f ![v 0, v 1]

                        A binary variable is read at its two arguments.

                        Dependency graph
                        @[simp]
                        theorem DescriptiveComplexity.ATMSpace.realize_stF {A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {γ : Type} {v : γA} (ρ : cfgBlock.Assignment A) (x : γ) :
                        (stF x).Realize v St ρ (v x)
                        Dependency graph
                        @[simp]
                        theorem DescriptiveComplexity.ATMSpace.realize_hdF {A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {γ : Type} {v : γA} (ρ : cfgBlock.Assignment A) (x : γ) :
                        (hdF x).Realize v Hd ρ (v x)
                        Dependency graph
                        @[simp]
                        theorem DescriptiveComplexity.ATMSpace.realize_tpF {A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {γ : Type} {v : γA} (ρ : cfgBlock.Assignment A) (x y : γ) :
                        (tpF x y).Realize v Tp ρ (v x) (v y)
                        Dependency graph
                        @[simp]
                        theorem DescriptiveComplexity.ATMSpace.realize_stAF {A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {γ : Type} {v : γA} (ρ σ : cfgBlock.Assignment A) (x : γ) :
                        (stAF x).Realize v St ρ (v x)
                        Dependency graph
                        @[simp]
                        theorem DescriptiveComplexity.ATMSpace.realize_hdAF {A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {γ : Type} {v : γA} (ρ σ : cfgBlock.Assignment A) (x : γ) :
                        (hdAF x).Realize v Hd ρ (v x)
                        Dependency graph
                        @[simp]
                        theorem DescriptiveComplexity.ATMSpace.realize_tpAF {A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {γ : Type} {v : γA} (ρ σ : cfgBlock.Assignment A) (x y : γ) :
                        (tpAF x y).Realize v Tp ρ (v x) (v y)
                        Dependency graph
                        @[simp]
                        theorem DescriptiveComplexity.ATMSpace.realize_stBF {A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {γ : Type} {v : γA} (ρ σ : cfgBlock.Assignment A) (x : γ) :
                        (stBF x).Realize v St σ (v x)
                        Dependency graph
                        @[simp]
                        theorem DescriptiveComplexity.ATMSpace.realize_hdBF {A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {γ : Type} {v : γA} (ρ σ : cfgBlock.Assignment A) (x : γ) :
                        (hdBF x).Realize v Hd σ (v x)
                        Dependency graph
                        @[simp]
                        theorem DescriptiveComplexity.ATMSpace.realize_tpBF {A : Type} [(FirstOrder.Language.turingAlt 2).Structure A] [LinearOrder A] {γ : Type} {v : γA} (ρ σ : cfgBlock.Assignment A) (x y : γ) :
                        (tpBF x y).Realize v Tp σ (v x) (v y)
                        Dependency graph
                        Dependency graph
                        Dependency graph

                        Configurations #

                        The assignment a configuration is.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          Dependency graph
                          @[simp]
                          theorem DescriptiveComplexity.ATMSpace.st_cfgOf {A : Type} (c : Config A) (q : A) :
                          St (cfgOf c) q q = c.state
                          Dependency graph
                          @[simp]
                          theorem DescriptiveComplexity.ATMSpace.hd_cfgOf {A : Type} (c : Config A) (h : A) :
                          Hd (cfgOf c) h h = c.head
                          Dependency graph
                          @[simp]
                          theorem DescriptiveComplexity.ATMSpace.tp_cfgOf {A : Type} (c : Config A) (p a : A) :
                          Tp (cfgOf c) p a c.tape p = a
                          Dependency graph

                          An assignment is a configuration: the two unary variables are singletons and the binary one is a function.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Dependency graph
                            Dependency graph
                            theorem DescriptiveComplexity.ATMSpace.exists_cfgOf {A : Type} {ρ : cfgBlock.Assignment A} (h : IsCfg ρ) :
                            ∃ (c : Config A), ρ = cfgOf c

                            A configuration assignment is the assignment of a configuration.

                            Dependency graph

                            The four sentences #

                            An assignment is a configuration, as a sentence over one copy.

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

                              The next configuration is a configuration, as a sentence over two copies.

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

                                The state is marked by the universal player.

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

                                  The state is accepting.

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

                                    The step relation #

                                    Seven elements of the base are quantified – the transition, the two states, the two head positions, the symbol read and the symbol written – and one pair is quantified universally, for the cells the head does not touch. Nothing here quantifies over a configuration, which is what keeps the sentence first-order over the base.

                                    One step of the machine, as a sentence over two copies of the block.

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

                                      The starting configurations #

                                      An initial configuration, as a sentence over one copy.

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

                                        A starting state of the game: the two promises about the instance, and an initial configuration.

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