Canonical cycle labels as bit strings #
Order n-bit states lexicographically, coordinate zero first (lexOrder). The canonical label
of a state x under f lists the least state of its eventual cycle, the cycle length and the
phase of x on the cycle, the last two in n + 3 bits (canonicalLabel). Labels along an
orbit differ only in the phase, so the label of x is recovered from the label of f^[j] x by
subtracting j modulo the cycle length (correctLabel_canonicalLabel).
On a cycle of length at most K, the first K + 1 states of the orbit of a periodic state
contain the whole cycle. A scan for the least of them, the first return to x and the first
visit to the least state give its label directly (shortLabel_eq_canonicalLabel), in
O(K * n + n ^ 2) gates once the orbit prefix is available (synthesis_shortLabel).
Main definitions #
Cslib.Circuits.Boolean.Iteration.canonicalLabel: representative, cycle length and phase.Cslib.Circuits.Boolean.Iteration.correctLabel: shift a label back along the orbit.Cslib.Circuits.Boolean.Iteration.shortLabel: the label read from one traversal of a short cycle.
Main results #
Cslib.Circuits.Boolean.Iteration.correctLabel_canonicalLabel: correcting a later label.Cslib.Circuits.Boolean.Iteration.shortLabel_eq_canonicalLabel: short cycles.Cslib.Circuits.Boolean.Iteration.synthesis_correctLabel,Cslib.Circuits.Boolean.Iteration.synthesis_shortLabel: their gate counts.
References #
- Adapted from lean/Proofs/{ShortCycle,LabelEncoding}.lean in S. Schlesinger, Square-root circuit bounds for iterated functions.
Label words #
The width of a canonical label: a state, then two words of n + 3 bits.
Instances For
Canonical labels. The lexicographically least state of the eventual cycle of x, the
cycle length, and the phase of x on the cycle, the last two in n + 3 bits.
Instances For
Correcting labels along an orbit #
Correcting an available label costs one modular difference.
Short cycles #
The label read from the first K + 1 states of the orbit of x.
Instances For
Short cycles. On a periodic state whose cycle has length at most K, the label read
from the first K + 1 states of its orbit is its canonical label.
Short-cycle labels. Once the first K + 1 states of an orbit are available, its short
label costs one minimum scan, two first-position scans, their equality tests and one modular
difference.