Guessing the certificate onto the region #
The certificate is one bit per address of the region, not per register of
the file: the evaluation reads its dictionary at the address whose argument
blocks encode a tuple of points, and there are 2 ^ (k · nᵈ) of those, where the
file has one register per block and tuple and is polynomial. So the guessing
sweep is not the file-laying sweep with a different write; it is a walk over the
region.
That has one consequence for its rules, and it is what this file is: the walk cannot be pointer-driven. A pointer holds a block and a tuple and can count the file's registers; it cannot count the region. So the guess is a sweep in the space-bounded program's style – one phase for the whole walk, a nondeterministic write, a step right – and its exit is a rule available at every address, so that where the guess stops is one more nondeterministic choice. Nothing has to recognize the region's end: the run a yes-instance exhibits stops at the logical top, and a run that stops earlier has left its remaining bits clear, which is a certificate like any other.
The rules are the program's own at
DescriptiveComplexity.Draw.Data.regionSpec – a guess specification whose
pointer never moves, so that the site's roll-over arm is the walk's every step
– together with the stopping rule hasLeft_guessStop. The sweep is
reachesIn_guessRegion, at the stretch's own length, and the whole phase –
sweep, stop, walk home – is reachesIn_guessRegionPhase.
The write step of the region-wide guess, at an address of the stretch:
the rule whose bit vector is the certificate's there fires. It is the guess
site's roll-over arm – at regionSpec the pointer never moves, so that arm's
guard is always true and its destination is the phase it came from.
Dependency graph
The clocked program guesses its certificate onto the region: one nondeterministic write per address of the stretch, at the stretch's own length. The walk carries no pointer – every step is the same rule at the same phase – so it is as long as the region asks and no wider than a bit vector.
Dependency graph
The whole guessing phase of a clocked program: the sweep over the region, the stop – which may fall anywhere, and here falls at the stretch's top – and the walk home to the marker. Its cost is the stretch out and back with the one step that turns round.