Completeness of the inductive-counting machine #
If no target is reachable from a source, the machine has an accepting run: the honest one, which certifies every node of every layer. The proof builds that run, four nested loops at a time – the certifying walk, the inner scan, the outer scan, and the sequence of stages – each by an induction along the finite linear order of nodes or, for the stages, on how much room the layer still has to grow.
Walking a finite linear order downwards #
Induction from the greatest element downwards, one cover at a time.
Dependency graph
A nonzero counter has a predecessor.
Dependency graph
A finite nonempty linear order has a least element.
Dependency graph
Configurations, explicitly #
A configuration with its eight registers given one by one.
Equations
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The transitions, one lemma each #
Counting a source and moving on.
Dependency graph
Skipping a non-source and moving on.
Dependency graph
The last node of the source scan is a source: the first stage begins.
Dependency graph
The last node of the source scan is not a source: the first stage begins.
Dependency graph
Skipping a node of the inner scan.
Dependency graph
Skipping the last node of the inner scan.
Dependency graph
Starting to certify the current node of the inner scan.
Dependency graph
One edge backwards along the certifying path.
Dependency graph
The certifying path has reached a source.
Dependency graph
Counting in a certified node equal to the outer one.
Dependency graph
Counting in a certified node with an edge to the outer one.
Dependency graph
Counting in a certified node unrelated to the outer one.
Dependency graph
Counting in the last certified node, equal to the outer one.
Dependency graph
Counting in the last certified node, with an edge to the outer one.
Dependency graph
Counting in the last certified node, unrelated to the outer one.
Dependency graph
The count checks out and the outer node was in the next layer.
Dependency graph
The count checks out and the outer node was not in the next layer.
Dependency graph
The last outer node was in the next layer: the stage ends.
Dependency graph
The last outer node was not in the next layer: the stage ends.
Dependency graph
The two counts agree: the machine accepts.
Dependency graph
On to the next stage.
Dependency graph
The certifying walk #
A node of the current layer can be certified: the machine walks backwards along a witnessing path until it meets a source.
Dependency graph
The inner scan #
Rewriting the witnesses of the outer node when the scan passes a node that is not one.
Dependency graph
The inner scan: from any node on, with an honest count and an honest flag, the machine reaches the count check with the exact count of the current layer and with the flag telling whether the outer node has entered the next layer.
Dependency graph
The outer scan, the source count, and the stages #
The outer scan: with the layer count in hand, the machine runs over every node and reaches the end of the stage with the exact count of the next layer.
Dependency graph
The source scan: the machine counts the sources and enters the first stage.
Dependency graph
The stages: as long as the layer keeps growing the machine starts a new stage; when it stops growing the two counts agree and the machine accepts.
Dependency graph
Completeness #
Completeness: if no target is reachable from a source, the machine has an accepting run.
Dependency graph
The machine is correct: it accepts exactly when no target is reachable from a source.