The address a stage atom builds, at an arbitrary file #
The random access of a stage atom copies each argument position's source block
into the TARGET register and then seeks to the address TARGET spells. At the
elementwise file that address is the register set, and the copy's two cells
are elements of the universe
(DescriptiveComplexity.Draw.Data.stageXS/stageXD). At a coarser file they
are registers, named by a block and a tuple
(DescriptiveComplexity.Draw.Layout.reg), what the copy builds is a mark,
and the address is DescriptiveComplexity.ixAddr of it.
This file is that reading, from the data up to the run: the two named registers,
the mark the loops build (ixStageTgt) with its closed form, the facts that
place the address it stands for in the logical interval, the copy loop's run
(ixStageTuple_reachesIn), the loops chained (ixStageChain_reachesIn) and the
whole random access (ixStageAtom_reachesIn), each on the clock a NEXPTIME
machine is held to. The hypothesis that carries everything across is one
coherence condition on the file – the element a register holds the bit of is
the element its name spells:
elt (F.toLayout.reg hhas b c) = dt.blkElt b (padTup zero c)
With it the address ixAddr elt (ixStageTgt …) has the same blocks as the
elementwise one, so the semantics of the atom – the dictionary, trackOf, the
logical interval – says of a clocked program's run exactly what it says of a
space-bounded one.
The two registers a copy round names #
The source register of a copy round: the register named by the round's tuple in the position's source block.
Instances For
Dependency graph
The destination register of a copy round: the register named by the round's tuple in the TARGET block of the position.
Instances For
Dependency graph
Distinct tuples name distinct registers: a register carries its own name, and the name determines the tuple.
Dependency graph
Distinct positions write distinct blocks: a register carries its block, and the block names the position that wrote it.
Dependency graph
The mark the copy loops build #
The TARGET after the first n copy loops: each position's loop writes
its source bits at its destination registers over what the earlier positions
built.
Equations
- One or more equations did not get rendered due to their size.
- dt.ixStageTgt F hhas vi ts st 0 = fun (x : I) => False
Instances For
Dependency graph
The composed TARGET, in closed form: a register holds a bit exactly when
some position below n copied it there – the source block's bit at the same
tuple. Distinct positions write distinct blocks, so the loops never collide and
the disjunction is honest.
Dependency graph
The copy loop at an arbitrary file #
The loop's background, its generated controls and its run, all as the elementwise instantiation has them – the only difference being that the two cells it names are registers and the marks are the index's.
The background of a copy loop, as a function of the destination content: the state with the TARGET register at the given track.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The destination-dependent background moves only at the TARGET slot.
Dependency graph
The copy loop's generated round tuples: the pre-store control's loop element is the round's tuple.
Dependency graph
The post-store control's loop element is still the round's tuple.
Dependency graph
One copy loop's run, on a clock: from its entry checkpoint at the marker to the exit phase one cell to its right, the TARGET block of the position holding the source block's bits at every tuple's cell, a round's width paid once per tuple.
Dependency graph
The control after the first n copy loops.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The copy loops of a stage atom, chained and instantiated, on a clock:
from the phase entering the first loop to the first reset's checkpoint, the
TARGET holding the composed content of every position – exactly the hLoopsIn
leg of DescriptiveComplexity.Draw.Data.stage_reachesIn, at one loop and one
walk-back per position.
Dependency graph
Where the address sits #
The target of a random access is an address of argument cells alone: every register it holds was written by a copy round, at that round's destination – in an argument block – over the empty mark.
Dependency graph
The target of a random access is padded: every register it holds is a
destination register, and those carry the round's tuple in the name slots and
zero beyond them.
Dependency graph
The address a stage atom reads lies in the logical interval: it is
built from padded destination registers in argument blocks alone, which is
wmSetLt_logicalTop_of_isPad's hypothesis.
Dependency graph
The stage atom's run at an arbitrary file #
The random access, end to end: the save, the clear, the copy loops of
ixStageChain_reachesIn, the reset–clear–seek out to the address the marks stand
for, the read under the head, the restore and the seek home. Everything below
it is DescriptiveComplexity.Draw.Data.stage_run, which takes the file as a
parameter; what this adds is the instantiation – the built target, and the two
facts that put it in the working area.
The stage atom's run at an arbitrary file, on a clock: from its entry
phase to the exit phase, the verdict – the old track's bit at the address the
built TARGET stands for – stored in the atom's control slot, the marker, mirror
and save restored at the home address. The cost is the atom's nine trips and
thirteen dispatches over the copy loops' own.
Dependency graph
The address the marks stand for, block by block #
The one place the file's naming and the encoding have to agree, and the reason
they can: with the coherence hypothesis, the address a clocked program's TARGET
spells has the same blocks as the address a space-bounded one builds, so every
statement of the semantics about that address – the dictionary, trackOf, the
logical interval – holds of the clocked run with no restatement.
Blindness to the two scratch registers #
The TARGET a random access builds is blind to the two scratch registers, at an arbitrary file: every copy round reads a level's register set, and the loop pins SAV at the home address itself.
Dependency graph
The control of the copy loops is blind to them too, at an arbitrary file: the destination-dependent background overwrites TARGET, and the loop reads it at the home cell alone.