The sweep of a wide machine #
The primitive every program of a hardness reduction into a wide machine will cite, and the last piece of the address layer:
A machine that takes a step at every increment of its address runs from the empty address to any address, and does so within its clock.
DescriptiveComplexity.stepsIn_of_wideSweep and
DescriptiveComplexity.accepts_of_wideSweep. So a phase is described by giving
its intended configuration at each address and discharging a single-step
obligation between an address and its increment – a statement about the
transition table, with no induction and no counting.
Nothing here is new machinery: DescriptiveComplexity.TMData.stepsIn_of_segment
already does the induction along the order, at an arbitrary position type, and
DescriptiveComplexity.bitRank_lt_card already does the clock. What this file
supplies is the identification of the three ends of that statement with the
address layer – the empty address is the least position
(DescriptiveComplexity.minPos_wpLe_iff), the full one is the last
(DescriptiveComplexity.maxPos_wpLe_iff), and a step is the binary increment
(DescriptiveComplexity.succPos_wpLe_iff) – so that a program never mentions
SuccPos again.
The initial configuration is settled here too. A reduction has no use for the
instance's input channel, its control being instance data already, so it leaves
wmInp empty; then the initial tape is blank everywhere
(DescriptiveComplexity.initTape_of_no_wmInp) and
DescriptiveComplexity.isInit_wide exhibits the one initial configuration: a
start state, the head on the empty address, every cell blank.
The two ends of the tape #
The empty address is the only least position.
Dependency graph
The full address is the only last position.
Dependency graph
The initial configuration #
With no input in the instance the initial tape is blank everywhere. A
reduction leaves wmInp empty: its machine's control is instance data already, so
it has nothing to read.
Dependency graph
The initial configuration of a wide machine: a start state, the head on the empty address, every cell blank.
Dependency graph
The sweep #
Both ends of a step of a wide machine are addresses, and the step is the binary increment.
Dependency graph
The sweep of a wide machine. A machine stepping at every increment of its
address runs from the empty address to any address, in as many steps as that
address has rank. The obligation is one step between an address and its
increment: no induction along the tape, and no DescriptiveComplexity.SuccPos.
Dependency graph
A sweep that ends accepting makes the machine accept: the clock counts the positions, so the rank of the address the sweep stops at is below it by construction.