Tiling a wide corridor is EXPSPACE-complete #
The corridor is the square's reduction with the clock taken out: the columns are still the machine's addresses, the rows are still its configurations, but there is no bound on how many of them there are – which is exactly a machine bounded in space and not in time.
Everything the drawing consists of is the square's
(DescriptiveComplexity.Problems.Wide.TilingHard): the tiles, the transition a
head carries, the arrival that hands it on, the border marks. Only the bottom
row differs, because the two machines describe their tapes differently – the
clocked one by a register file, the space-bounded one by the ruler of all the
segments – which is why the drawing carries that row as a parameter
(DescriptiveComplexity.TilingHard.tileStrOf).
The bottom row at the ruler #
Every digit is described, as soon as the instance has a blank: an element with an input symbol has a tile holding it, and one without has the blank. That is what makes the drawing's file the machine's whole ruler.
Dependency graph
The cells of the drawing's file are the machine's own segments: a
coordinate is the cell of the digit of x exactly when the address it is is the
initial segment x cuts.
Dependency graph
The bottom row of the drawing is the machine's ruler: the cell of an element may carry a tile holding that element's input symbol, or the blank where it has none.
Dependency graph
An address is the segment of at most one element: the two elements are each below the other.
Dependency graph
An accepting run draws a corridor #
The corridor a run draws: the row of index k is the configuration at
time k, and its cell at a column is the tile that configuration puts there.
Equations
- DescriptiveComplexity.TilingHard.tableCorridor g tr n k col = Sum.inr (DescriptiveComplexity.TilingHard.tileAt g tr n k (Sum.inl (DescriptiveComplexity.TilingHard.addrOf col)))
Instances For
Dependency graph
Dependency graph
The bottom row the table draws is the machine's initial tape, read at the ruler: the corner carries the machine's start, and every other column the input symbol of the element whose segment it is, or the blank.
Dependency graph
An accepting run in bounded space draws a corridor of the emitted square. Each of the conditions is the square's, with the clock taken out: the rows are the configurations, one per time step, and there is no bound on how many of them the run takes.
Dependency graph
The emitted corridor can be tiled when the machine accepts in bounded space.
Dependency graph
A corridor is an accepting run in bounded space #
A tiling of the emitted corridor is an accepting run of the machine. The columns are the machine's addresses and the rows its configurations, exactly as for the square; what the corridor drops is the clock.
Dependency graph
The reduction and the completeness #
The interpreted structure is a yes-instance exactly when the emitted one is.
Dependency graph
A wide machine bounded in space is drawn as a tiling of the emitted corridor. The drawing is the square's; what the corridor drops is the clock, which is the one thing a space-bounded machine does not have.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Tiling a wide corridor is EXPSPACE-hard: the space-bounded wide machine is, and it is drawn as one.
Dependency graph
Tiling a wide corridor is EXPSPACE-complete. The membership half is
DescriptiveComplexity.wideCorridor_mem_EXPSPACE: a wide corridor is an
ordinary corridor of an exponential expansion, and that problem is a walk on
rows, hence in PSPACE.