The two legs, joined at any program with the clocked rules #
DescriptiveComplexity.Draw.Data.wideRegAccept_of_legs packages an opening and
an evaluation as a yes-instance of DescriptiveComplexity.WideRegAccept, and
DescriptiveComplexity.Draw.Data.reachesIn_openingReg runs the opening – both
at an arbitrary program. This file joins them, at an arbitrary program too: the
opening at the file the channel hands over, the evaluation at the same file, the
guess writing an assignment's tracks inside the region it sweeps, and the clock
met by the region's size, the evaluation's width and its rounds.
What the join reads of the program is only what a hypothesis can carry: its
rules at named sites, its channel's marks, its constants and its accepting
predicate. So the program a reduction emits and the padded one that buys the
clock its room (RegChannelPad.lean) are both instances of one statement, and
nothing here has to be proved twice.
The semantic packs a run of this evaluation is threaded by, pinned at the
program: the packs are built once and for all (regGatedSem), and the only
thing this adds is which program the gates they answer for belong to – which a
term whose type mentions the program cannot leave to inference.
Equations
- DescriptiveComplexity.Draw.Data.regGatedSemP PR h hord mV = dt.regGatedSem h hord ⋯ mV
Instances For
Dependency graph
A program with the clocked rules accepts, at the file the channel gives it: the opening and the evaluation at that one file, joined. Nothing of the program is read but its rules at named sites, its channel and its constants, so the same statement serves the program a reduction emits and the padded one that buys the clock its room.