The killed walk, in numbers #
A dart of the powered graph is a tuple of steps together with a tuple of coins;
the walk runs until the first coin that is zero. NumEncPi numbers both tuples
digit by digit, so an algorithm recovers a step or a coin by dividing and taking
the remainder. This module reads the stopping rule off those digits.
Main definitions #
Complexity.stopAtNum— where a killed walk stops, from the coins' number
Main results #
Complexity.stopAtNum_eq— it is the abstract stopping indexComplexity.ConstraintGraph.walkNum_eq— and following the step digits walks the preprocessed graphComplexity.ConstraintGraph.killedRevNum_eq— the dart a killed walk comes back by, digit by digitComplexity.ConstraintGraph.killedRotNum_eq— the powered graph's rotation map, in numbers
Where a killed walk stops, read off the coins' number: the first digit that is zero, or the whole length if there is none.
Equations
- Complexity.stopAtNum T q c = List.findIdx (fun (j : Fin T) => c / q ^ ↑j % q == 0) (List.finRange T)
Instances For
The digits give the stopping index.
How many darts the preprocessed graph has at each vertex.
Equations
- G.preDeg E = Complexity.NumEnc.card (G.preprocess E).graph.D
Instances For
The vertex reached after k steps, following the digits of s.
Equations
Instances For
The digits of a tuple's number are its entries' numbers.
Following the digits walks the graph. The steps are read from any number whose digits are the tuple's entries, so a prefix of a longer walk may be run from that walk's own number.
The dart the walk comes back by #
The dart a killed walk comes back by, in numbers: below the stopping index the digits are the labels pointing back, read in reverse order; above it they are the original steps.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The digits give the dart the walk comes back by.
The powered graph's rotation map #
The powered graph's rotation map, in numbers: walk to the end, come back by the reversed labels, and keep the coins.
Equations
- G.killedRotNum E T q v s c = (G.walkNum E s (Complexity.stopAtNum T q c) v, G.killedRevNum E T q v s c * q ^ T + c)
Instances For
The numbers run the powered graph's rotation map.