Documentation

DescriptiveComplexity.Problems.Wide.TilingHard.Tiles

The tiles a computation table is drawn with #

The drawing behind DescriptiveComplexity.WideTiling's hardness, written as plain predicates before any formula: the tile system whose square is the computation table of a clocked wide machine – a column is a tape address, a row is a time step.

What a tile carries #

A tile is a tagged triple of elements of the machine's instance (DescriptiveComplexity.TileTag):

The head component carries the transition, not merely the state, because the two local rules would otherwise each be free to choose their own: the vertical one fixes the symbol written, the horizontal one the direction taken, and a tile system whose two rules disagree describes no run at all.

Why an arrival is a tile of its own #

A vertical rule sees one column, so it cannot know that the neighboring head is about to step into it; a horizontal rule sees one row, so it cannot know what the next row holds. The arrival tile is the handshake between them: the horizontal rule justifies it against the neighboring head, and the vertical rule turns it into the head of the next row. That is what keeps a row to exactly one head with rules that never see more than two cells.

The tags #

The tags of the tiles a computation table is drawn with: the digits the grid's coordinates are made of, and the five kinds of cell.

  • dig : TileTag

    A digit of a coordinate – not a tile.

  • sym : TileTag

    A cell with no head, holding a symbol.

  • head : TileTag

    The head, firing a transition.

  • halt : TileTag

    The head, firing nothing.

  • arrL : TileTag

    A head arriving from the left.

  • arrR : TileTag

    A head arriving from the right.

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

    The universe of the emitted instance #

    @[reducible, inline]

    A point of the emitted instance: a tag and three elements of the machine's.

    Equations
    Instances For
      Dependency graph

      The symbol a tile holds: its first coordinate.

      Equations
      Instances For
        Dependency graph

        The state a head or an arrival carries: its second coordinate.

        Equations
        Instances For
          Dependency graph

          The transition a head fires: its third coordinate.

          Equations
          Instances For
            Dependency graph

            Being a digit: the tag says so and the triple is diagonal, so the digits are one per element of the machine's instance.

            Equations
            Instances For
              Dependency graph

              The digit of an element.

              Equations
              Instances For
                Dependency graph
                @[simp]
                Dependency graph
                Dependency graph

                Being a tile: one of the five kinds of cell, and – at a head – a transition the machine may fire on the state and the symbol the tile carries. A digit is not a tile.

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

                  A cell with no head: it holds a symbol, and it may be expecting one – the bottom row's description allows an arrival, since the machine's first step announces itself in a neighbor of the corner.

                  Equations
                  Instances For
                    Dependency graph

                    A base tile: what a column the description says nothing about carries in the bottom row – a cell holding the blank.

                    Equations
                    Instances For
                      Dependency graph

                      A start tile: what the corner carries – the head, in a start state, on the blank cell the machine begins on.

                      It is also where the machine's own well-formedness is folded in: a machine whose order is not linear, whose input is not functional or which has no single blank has no start tile at all, so its drawing has no tiling – which is what a no-instance must give. The order's linearity is folded in twice over, since the emitted order is linear only when the machine's is.

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

                        A tile the leftmost column may carry: anything but a head arriving from the left, there being nothing to the left of that column to send one. This is the border condition that keeps a head from appearing out of nowhere at the edge of the square.

                        Equations
                        Instances For
                          Dependency graph

                          A tile the rightmost column may carry: anything but a head arriving from the right.

                          Equations
                          Instances For
                            Dependency graph

                            The bottom row's description: at the cell of an element carrying input, that input symbol, with no head.

                            Equations
                            Instances For
                              Dependency graph

                              The bottom row's description at the ruler: the cell of an element holds that element's input symbol, and the blank where the element carries none. This is what a space-bounded wide machine's tape says, its cells being the initial segments of the whole instance rather than of a file, which is why the drawing carries the bottom row as a parameter.

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

                                The two compatibilities #

                                What a cell becomes in the next row: the symbol is the written one under a head and unchanged elsewhere, and the head of the next row is exactly what this row's arrival announces. A halted head stays where it is, and a cell that neither holds nor expects a head simply copies itself.

                                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 cell: a head that moves right announces itself in the right neighbor's arrival and nowhere else, and a head that moves left in the left neighbor's – so an arrival is justified by a neighboring head, which is what keeps a row to one head.

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