First hitting times from words of bounded width #
For n-bit states, transient depths, phases and cycle lengths are below 2 ^ n, so they fit in
n + 3 bits with room for one addition (depthWord, phaseWord, lengthWord). The closed forms
for reachability and first hitting times (FunctionalGraph.reaches,
FunctionalGraph.hittingTime) are then word computations from the depths, labels and phases of
the two states: a comparison and a difference of depths for a transient target, a modular
difference of phases for a periodic one (navigationFlag_eq_reaches,
toNat_navigationTime). The output format is one reachability bit and n + 1 time bits
(navigationBits); the time is specified only when the target is reachable, where it is below
2 ^ n (navigationBits_time).
These are word-level identities. The circuits that compute depths and labels are in
Iteration.Depth and Iteration.LabelCircuit.
Main definitions #
Cslib.Circuits.Boolean.Iteration.navigationFlag,navigationTime: reachability and first hitting time as word computations.Cslib.Circuits.Boolean.Iteration.navigationBits: one flag bit andn + 1time bits.
Main results #
Cslib.Circuits.Boolean.Iteration.navigationFlag_eq_reaches,Cslib.Circuits.Boolean.Iteration.toNat_navigationTime: agreement with the closed forms.Cslib.Circuits.Boolean.Iteration.navigationBits_flag,Cslib.Circuits.Boolean.Iteration.navigationBits_time: the output format.
References #
- Adapted from lean/Proofs/NavigationEncoding.lean in S. Schlesinger, Square-root circuit bounds for iterated functions.