The tape the register channel hands over is the state the run reads #
A program that lays its own file arrives at its evaluation with a background
built by the sweep; a program that is handed its file has that background from
time zero. This file says the two agree: the marks the register channel writes
are, slot for slot, what DescriptiveComplexity.Draw.Data.ixBack reads off the
entry state at the handed file.
Only two slots need an argument, and both are about the file's ends:
regFirst– at this channel the first register is not the least element of the universe but the greatest carrying no argument block, which is why the mark isDescriptiveComplexity.Draw.regSlotMarkand notDescriptiveComplexity.Draw.slotMark(isTopNonArg_iff_least_marked);regLast– the last register is the last element, the argument tags being the greatest (isGreatest_iff_greatest_marked).
Everything else is a tag decision the layout repeats (the block one-hots, the name slots, the padding flag) or a track that starts clear.
The two ends of the handed file #
The element below the argument tags exists: the elements carrying no argument block are finitely many and not none, so one of them is greatest.
Dependency graph
The greatest element carries an argument block, provided there is one:
the argument tags come last (DescriptiveComplexity.Draw.lt_arg).
Dependency graph
The first register of the handed file is the element below the argument
tags: the channel marks the argument elements and that one, and it is the
least of them. This is the regFirst slot's whole content, and the reason the
mark had to change.
Dependency graph
The last register of the handed file is the last element: the argument
tags being the greatest, the greatest element is one of the marked ones, so
being greatest among them is being greatest. The regLast slot therefore needs
no change.
Dependency graph
The tape at time zero is the entry state's background #
The channel's tape, after the start step, is the entry state's
background: what a program that lays its own file arrives at its evaluation
with, a program handed its file has from the start. Slot for slot: the register
flag and the block one-hots repeat the layout's, the name slots the element's own
coordinates, the two end slots the file's ends
(isTopNonArg_iff_least_marked, isGreatest_iff_greatest_marked), and every
track is clear – except at the marker, where the start step sets wk and bot,
and the entry state says the same.
Dependency graph
Every track of the channel's tape is clear: a mark is a
regSlotMark, whose tracks are all zero, and every other cell is blank. This
is what the semantic half of a backward reading starts from – the tracks hold
nothing until the machine writes them.
Dependency graph
The tape the channel hands over is recognizable: the file's slots are the
layout's (that is startBack_initBackReg, read at those slots alone, the start
step touching only tracks), the four addressed tracks are clear, and every other
track is a bit – the marks are regSlotMarks and the rest is blank. This is the
base of an opening's reading.
Dependency graph
What the marking gives the run #
The channel writes for an element exactly when the program marks it.
Dependency graph
Every argument element carries input: the hargall the run asks for.
Dependency graph
Every named register carries input: the harg the file's HasName
asks for.
Dependency graph
The elements the channel writes for are upward closed: above an argument
element everything is an argument element, and above the one element below them
everything is marked. This is the hup the file's bound
(DescriptiveComplexity.wideRank_wmRegSeg_lt) asks for, and what puts the file
under 2 ^ the number of marks.
Dependency graph
The element below the argument tags is marked and least among the marked
ones: the bot the working area is measured against
(DescriptiveComplexity.Draw.Data.work_regLaid).