Documentation

DescriptiveComplexity.Problems.Wide.TilingHard.Draw

The drawing, as formulas #

The tile system of DescriptiveComplexity.Problems.Wide.TilingHard.Tiles written down: one formula per symbol of FirstOrder.Language.wtile and per tuple of tags, over the machine's own vocabulary with the order of the instance.

The dimension is three – a tile is a tag with a symbol, a state and a transition – and every case analysis on tags is a DescriptiveComplexity.TilingHard.tagIfF, so each formula is a fixed conjunction and the tags decide which of its parts are . The order is the only symbol needing the ambient order of the instance, through DescriptiveComplexity.lexLeF: the points that are not digits are compared lexicographically, and the digits by the machine's own order.

Each formula is checked against the predicate it draws, at an arbitrary valuation, so DescriptiveComplexity.TilingHard.tileInterp is the emitted structure of DescriptiveComplexity.TilingHard.tileStr symbol by symbol.

The coordinates of an argument #

The symbol coordinate of the i-th argument.

Equations
Instances For
    Dependency graph

    Its state coordinate.

    Equations
    Instances For
      Dependency graph

      Its transition coordinate.

      Equations
      Instances For
        Dependency graph
        def DescriptiveComplexity.TilingHard.argPt {n : } {A : Type} (v : Fin n × Fin 3A) (t : TileTag) (i : Fin n) :

        The tile an argument is, at a valuation and a tag.

        Equations
        Instances For
          Dependency graph
          @[simp]
          theorem DescriptiveComplexity.TilingHard.argPt_fst {n : } {A : Type} (v : Fin n × Fin 3A) (t : TileTag) (i : Fin n) :
          (argPt v t i).1 = t
          Dependency graph
          @[simp]
          theorem DescriptiveComplexity.TilingHard.tpSym_argPt {n : } {A : Type} (v : Fin n × Fin 3A) (t : TileTag) (i : Fin n) :
          tpSym (argPt v t i) = v (argSym i)
          Dependency graph
          @[simp]
          theorem DescriptiveComplexity.TilingHard.tpState_argPt {n : } {A : Type} (v : Fin n × Fin 3A) (t : TileTag) (i : Fin n) :
          tpState (argPt v t i) = v (argState i)
          Dependency graph
          @[simp]
          theorem DescriptiveComplexity.TilingHard.tpTr_argPt {n : } {A : Type} (v : Fin n × Fin 3A) (t : TileTag) (i : Fin n) :
          tpTr (argPt v t i) = v (argTr i)
          Dependency graph

          The marks of one tile #

          noncomputable def DescriptiveComplexity.TilingHard.digF {n : } (t : TileTag) (i : Fin n) :

          x is a digit: its tag says so and its triple is diagonal.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Dependency graph
            noncomputable def DescriptiveComplexity.TilingHard.noHeadF {n : } (t : TileTag) (_i : Fin n) :

            x holds no head.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              Dependency graph
              noncomputable def DescriptiveComplexity.TilingHard.tileF {n : } (t : TileTag) (i : Fin n) :

              x is a tile: a head carries a transition the machine may fire, a digit is no tile, and every other kind asks nothing.

              Equations
              Instances For
                Dependency graph
                noncomputable def DescriptiveComplexity.TilingHard.accF {n : } (t : TileTag) (i : Fin n) :

                x is an accepting tile: the head is here, in an accepting state.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  Dependency graph
                  Dependency graph
                  noncomputable def DescriptiveComplexity.TilingHard.startF {n : } (t : TileTag) (i : Fin n) :

                  x is a start tile: the head on the blank in a start state, and the machine's promises.

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

                    The relations between two tiles #

                    noncomputable def DescriptiveComplexity.TilingHard.leF (t₁ t₂ : TileTag) :

                    The order the drawing emits: the digits last, in the machine's own order, and everything else lexicographically.

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

                      The bottom row: the cell of a digit may carry a tile holding that element's input symbol, and no head.

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

                        The bottom row at the ruler: the cell of a digit carries that element's input symbol, or the blank where it has none.

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

                          What may stand immediately to the right of a tile: an announced head is the neighbor's arrival and an arrival is a neighboring head, so a row keeps to one head.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Dependency graph
                            noncomputable def DescriptiveComplexity.TilingHard.vertF (t₁ t₂ : TileTag) :

                            What may stand immediately above a tile: the head writes, an arrival becomes the head, and every other cell copies itself.

                            Equations
                            Instances For
                              Dependency graph
                              @[simp]
                              theorem DescriptiveComplexity.TilingHard.realize_leF {A : Type} [FirstOrder.Language.wide.Structure A] [LinearOrder A] {v : Fin 2 × Fin 3A} {t₁ t₂ : TileTag} :
                              (leF t₁ t₂).Realize v tpLe (argPt v t₁ 0) (argPt v t₂ 1)
                              Dependency graph
                              @[simp]
                              theorem DescriptiveComplexity.TilingHard.realize_firstF {A : Type} [FirstOrder.Language.wide.Structure A] [LinearOrder A] {v : Fin 2 × Fin 3A} {t₁ t₂ : TileTag} :
                              (firstF t₁ t₂).Realize v TPFirst (argPt v t₁ 0) (argPt v t₂ 1)
                              Dependency graph
                              @[simp]
                              theorem DescriptiveComplexity.TilingHard.realize_firstRF {A : Type} [FirstOrder.Language.wide.Structure A] [LinearOrder A] {v : Fin 2 × Fin 3A} {t₁ t₂ : TileTag} :
                              (firstRF t₁ t₂).Realize v TPFirstR (argPt v t₁ 0) (argPt v t₂ 1)
                              Dependency graph
                              @[simp]
                              theorem DescriptiveComplexity.TilingHard.realize_horizF {A : Type} [FirstOrder.Language.wide.Structure A] [LinearOrder A] {v : Fin 2 × Fin 3A} {t₁ t₂ : TileTag} :
                              (horizF t₁ t₂).Realize v TPHoriz (argPt v t₁ 0) (argPt v t₂ 1)
                              Dependency graph
                              @[simp]
                              theorem DescriptiveComplexity.TilingHard.realize_vertF {A : Type} [FirstOrder.Language.wide.Structure A] [LinearOrder A] {v : Fin 2 × Fin 3A} {t₁ t₂ : TileTag} :
                              (vertF t₁ t₂).Realize v TPVert (argPt v t₁ 0) (argPt v t₂ 1)
                              Dependency graph