Sparse checkpoints in a functional graph #
Fix L > 0. Inside a finite set S, greedily pack disjoint simple paths of L states and mark
the last state of each. At most |S| / L paths fit, so there are at most |S| / L marks. Every
orbit whose first L states lie in S either repeats a state among them, or meets a packed path
within L steps and then reaches its mark within L - 1 further steps
(exists_checkpoints_on). When S is invariant under f, this applies to every orbit starting
in S (exists_checkpoints); on a finite type, to every orbit (exists_checkpoints_finite).
The state type may live in any universe and need not be finite; only S is.
Main definitions #
Cslib.FunctionalGraph.Repeats: the firstLstates of an orbit contain a repeat.
Main results #
Cslib.FunctionalGraph.exists_checkpoints_on: checkpoints for orbits staying inS.Cslib.FunctionalGraph.exists_checkpoints: checkpoints on an invariant finite set.Cslib.FunctionalGraph.exists_checkpoints_finite: at mostcard α / Lcheckpoints.
References #
- Adapted from lean/Proofs/Checkpoints.lean in S. Schlesinger, Square-root circuit bounds for iterated functions.
A repeated state among the first L states of an orbit.
Instances For
Checkpoints on a finite set. For L > 0 there are at most |S| / L marks in S such
that every orbit whose first L states lie in S repeats a state among them or reaches a mark
in fewer than 2 L steps.
Checkpoints on an invariant set. If S is finite and f maps S into itself, every
orbit starting in S repeats a state among its first L or reaches one of at most |S| / L
marks in fewer than 2 L steps.