Interval labels for finite functional forests #
Cut the outgoing edge of each periodic state. For any state x, forestPath f x is the reversed
orbit segment from its first periodic point (f^[transientDepth f x] x) down to x. A state y
is reached from x before cycle entry (∃ t ≤ transientDepth f x, f^[t] x = y) if and only if
forestPath f y is a prefix of forestPath f x (forestPath_prefix).
Under the lexicographic order on root-to-vertex paths, the extensions of any prefix form an
order-convex interval (list_prefix_interval). Ranking the |α| root paths (forestRank) and
taking the maximum descendant rank (forestUpper) therefore assigns two labels in
Fin (Nat.card α) to every state such that ancestry before cycle entry is equivalent to interval
containment (forest_interval_spec, exists_forest_intervals).
Main definitions #
Cslib.FunctionalGraph.forestTrace: the firstkstates of the orbit ofx.Cslib.FunctionalGraph.forestPath: the root-to-vertex path fromf^[transientDepth f x] xtox.Cslib.FunctionalGraph.forestRank: the lexicographic rank offorestPath f xinFin (Fintype.card α).Cslib.FunctionalGraph.forestDescendantRanks: the set of ranks of states whose root path hasforestPath f xas a prefix.Cslib.FunctionalGraph.forestUpper: the inclusive upper endpoint of the subtree interval ofx.
Main results #
Cslib.FunctionalGraph.forestPath_prefix:forestPath f y <+: forestPath f xiffyis reached fromxwithintransientDepth f xsteps.Cslib.FunctionalGraph.list_prefix_interval: lists sharing a prefix form a lexicographic interval.Cslib.FunctionalGraph.forest_interval_spec:forestRankandforestUppercharacterize ancestry before cycle entry.Cslib.FunctionalGraph.exists_forest_intervals: interval labels inFin (Nat.card α)exist over any finite type[Finite α].
References #
- Adapted from lean/Proofs/ForestIntervals.lean in S. Schlesinger, Square-root circuit bounds for iterated functions.
The first k states of an orbit (List.iterate f x k).
Instances For
The trace of length k has k states.
A state lies on the trace of length k exactly when it is f^[i] x for some i < k.
The path from cycle entry to x, with the forest edges read backwards.
Instances For
The root path of x has one more state than the transient depth of x.
The root path of x ends at x.
Distinct states have distinct root paths.
A state lies on the root path of x exactly when it is f^[i] x for some
i ≤ transientDepth f x.
Every state lies on its own root path.
Prefixes of root paths are exactly the ancestors before cycle entry.
Lists with a common prefix form a lexicographic interval.
A list is lexicographically at most every list it is a prefix of.
The rank of the root path in the lexicographic order of all root paths.
Instances For
Ranks compare exactly as the root paths compare lexicographically.
All descendant ranks, including the vertex's own rank.
Instances For
A rank is a descendant rank of x exactly when it is the rank of a state whose root path
extends that of x.
Every state has a descendant rank, namely its own.
The inclusive upper endpoint of a subtree's rank interval.
Instances For
Two bounded labels suffice to test ancestry in the cut functional forest.
Interval labels exist over every finite universe, without an input order.