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):
dig– not a tile at all, but a digit: the diagonal triples are the elements the grid's coordinates are subsets of, so the square is2ⁿ × 2ⁿwithnthe size of the machine's instance;sym a– a cell holding the symbola, with no head;head a q τ– the head is here, in the stateq, readingaand firing the transitionτ;halt a q– the head is here, in the stateq, and fires nothing;arrL a q/arrR a q– no head yet, and one is about to arrive from the left (right) in the stateq.
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
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
Dependency graph
The universe of the emitted instance #
A point of the emitted instance: a tag and three elements of the machine's.
Equations
- DescriptiveComplexity.TilePt A = (DescriptiveComplexity.TileTag × (Fin 3 → A))
Instances For
Dependency graph
The symbol a tile holds: its first coordinate.
Equations
- DescriptiveComplexity.tpSym p = p.2 0
Instances For
Dependency graph
The state a head or an arrival carries: its second coordinate.
Equations
- DescriptiveComplexity.tpState p = p.2 1
Instances For
Dependency graph
The transition a head fires: its third coordinate.
Equations
- DescriptiveComplexity.tpTr p = p.2 2
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
- DescriptiveComplexity.TPDig p = (p.1 = DescriptiveComplexity.TileTag.dig ∧ p.2 0 = p.2 1 ∧ p.2 1 = p.2 2)
Instances For
Dependency graph
The digit of an element.
Equations
- DescriptiveComplexity.tpDig x = (DescriptiveComplexity.TileTag.dig, fun (x_1 : Fin 3) => x)
Instances For
Dependency graph
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
Being an accepting tile: the head is here, in an accepting state.
Equations
Instances For
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
- DescriptiveComplexity.TPFirst x p = ∃ (a : A), DescriptiveComplexity.TPDig x ∧ DescriptiveComplexity.TPNoHead p ∧ DescriptiveComplexity.WMInp (x.2 0) a ∧ DescriptiveComplexity.tpSym p = a
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.