Where a backward reading of an accepting run starts #
A run that accepts ends in NexPh.acceptP, which is one of the phases the
program can never leave (NexPh.PostGuess). So somewhere along the run there is
a first configuration in a post-guess phase, and this file finds it and
recognizes its tape.
Two facts do it. The phases before it are all the outer layer's, so the rules
fired up to that point keep the file, keep the addressed tracks and write bits
(nexRule_keepsFile_of_ne_eval and its two siblings) – which is exactly what
DescriptiveComplexity.Draw.Data.ShapedAt propagates along a run. And an accepting
configuration is in a post-guess phase, so the search has something to find.
What comes out is a configuration whose tape is an ixBack of some tape state
and whose phase is post-guess: the point where the machine's nondeterminism is
spent, the guess is written on the tape, and the rest of the run is the
evaluation's – deterministic, and read forward.
The first time a property holds #
The run from the entry, forward again #
The tape state the entry carries #
The entry's tape, read as a tape state. The channel's tape is
recognizable (tapeShape_initBackReg), the reading survives to the first
post-guess time (exists_postGuess_shaped) and there the tape is an ixBack
(exists_ixBack_of_shape) whose mirror, target, saved mirror and valuation are
empty. The marker is the one write of the opening the reading has to read: the
start step sets it at the cell the head began on and no later rule touches it
(track_set_of_seq, nexProgHanded_setsSlot_wk, nexProgHanded_keepsSlot_wk),
so the state's working track marks that cell alone.
That is every hypothesis the evaluation's entry state is asked for except the
stage tracks, which are the guess's and are read off the same ixBack.