The clocked program of a reduction into the register channel #
DescriptiveComplexity.Draw.Data.nexProg is the clocked program of a
reduction that lays its own file: it carries a coordinate map, and the sweep
that lays the file carries a pointer as wide as an address – which no wide
machine's control can hold (DescriptiveComplexity.Problems.Wide.Limits).
This file is the program of a reduction into
DescriptiveComplexity.WideRegAccept, which is handed its file. It is the
same program with two changes, and both remove something:
- the file-laying sweep is
nullSpec, so there is no pointer and no coordinate map – the phase is two steps and writes nothing; - the channel writes for the argument elements and for one element below them
(
regFileMarkArg), which is what puts the file inside the working region and directly above it – and the mark it writes isregSlotMark, whoseregFirstslot names that element rather than the least of the universe.
Everything else – the guess, the walks home, the evaluation, the accepting
predicate – is nexProg's own, so its definability, its separation and its runs
serve unchanged.
What is here is the program, the two legs of a clocked run packaged as a
yes-instance (wideRegAccept_of_legs, at an arbitrary program), and the
rule-level facts a determinism argument is built from: separation after the
guess and the accepting phase no rule fires from.
The clocked program of a reduction into the register channel: the outer layer at the sweep that lays nothing and the region-guessing one, over the shared tower's evaluation, with the input written on the argument elements' file. Its pointer starts clear – there is no file-laying pointer to set – and its channel writes for the argument elements alone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The handed program's rules, at a rule name: what every run lemma's rule hypothesis is discharged by.
Dependency graph
The two legs, at any program that reads the same rules #
A program accepts, from its opening and its evaluation – stated of any
program whose channel writes nothing on the walked track, so that the padded
program and the program itself are two instances of one statement. It is
The two legs of a clocked run, at an arbitrary program: the
adjustment between them (config_openingEnd_eq_evalStart), the file the initial
tape is presented along (trackTape_empty_congr) and the clock.
Dependency graph
The handed program is deterministic after its guess #
The three facts a backward reading needs, at the handed program: it separates
after the guess, so a run from a post-guess configuration is unique, and its
accepting phase is stuck. All three are nexProg_sepOn's, nexProg_uniqueFrom's
and nexProg_stuck_acceptP's at the rule set that lays no file – the rules being
the same function of the rule name (nexProgHanded_rules), the sweep the only
thing that changed, and neither the sweep nor the channel entering any of the
three proofs.
The handed program separates after its guess: two of its rules firing
in the same post-guess phase on the same data are the same rule. Across sites
that is the owner map (nexOwner_nexRule); within a site it is
nexSep_postGuess, and the guess site is where the two are allowed to differ –
which is why the phase restriction is there.
Dependency graph
No rule of the handed program fires from its accepting phase: the
accepting phase is owned by the accepting site (nexOwner), and that site has
no rules at all – its shape is Empty.