Starting a run at the register channel #
The two machines an instance describes – DescriptiveComplexity.wideData and
DescriptiveComplexity.wideRegData – differ in one field, the channel, and it
is read nowhere but in the initial tape: a step reads the transitions, the
order and the positions and nothing else. So every run lemma of the library
transfers by definition (wideRegData_step, wideRegData_reachesIn), and what
has to be redone is the pair of statements at the two ends of a run.
They are the segment channel's own with two changes: the cell of x is
wmRegSeg x, and only the elements that carry input have one. Where the
segment channel says “every cell holds its element's symbol, every other
address is blank”, the register channel says the same of the elements it writes
for, and an address that is nobody's cell is blank as before.
The two machines take the same steps: a step reads the transitions, the order and the positions, and the channel is none of those.
Dependency graph
And so they take the same runs.
Dependency graph
And the same bounded runs.
Dependency graph
A register cell starts holding its element's symbol.
Dependency graph
Every other address starts blank: one that is no writing element's cell.
Dependency graph
The initial tape at the register channel: the symbol of x at the cell
of x for every element the channel writes for, the blank at every address that
is no such element's cell.
Dependency graph
The promise of the register-channel machine is the same promise about the instance: a linear order, a functional input and a unique blank. The channel enters only through the functionality of the input, and there two elements with the same cell that both carry input are equal.
Dependency graph
The initial configuration at the register channel: a start state, the head on the empty address – which is no register's cell, a register's cell holding its own element – and the marked tape.
Dependency graph
The initial configuration of a program at the register channel, its tape given as a function of the addresses.
Dependency graph
A program at the register channel accepts on its clock: it starts as
isInit_wideRegTape says, runs for fewer steps than there are addresses, and
ends in an accepting state.
Dependency graph
The same, with the budget compared against 2 ^ n.