Navigation through a compressed checkpoint forest #
For a transient target y, an anchor a (ForestAnchor f H L y a) is either y itself when
y ∈ forestMarks f H, or the lower endpoint a of a compressed edge IsForestEdge f H a d of
length d ≤ 2 * L whose last-predecessor key f^[d - 1] a is reached from y within k ≤ 2 * L
steps while transientDepth f y ≤ transientDepth f a. On checkpointHull f H, every vertex has a
unique anchor (exists_forest_anchor, forestAnchor_unique), and any mark reaching y must pass
through a (forest_anchor_contains).
Combining a short 2 * L-step prefix check from x, a selected prefix mark h ∈ forestMarks f H
(sound and complete for hitting H within < 2 * L steps), an anchor a for y with a short
2 * L-step verification prefix from a to y, and subtree interval containment
low a ≤ low h ∧ low h ≤ high a yields an exact characterization of reachability ∃ t, f^[t] x = y
(forest_navigation_spec).
ForestEdgeTable packages the compressed edges of all non-root marks into a finite table of at
most (forestMarks f H).card entries with injective last-predecessor keys (key_injective),
characterizing ForestAnchor by key lookup and depth comparison (ForestEdgeTable.anchor_iff).
Main definitions #
Cslib.FunctionalGraph.ForestAnchor: candidate lower endpoint for a targety, obtained either as a marky ∈ forestMarks f Hor via a depth-filtered last-predecessor key of a short compressed edge.Cslib.FunctionalGraph.ForestEdgeTable: finite table storing one short compressed edge per non-root mark inforestMarks f H.Cslib.FunctionalGraph.ForestEdgeTable.key: the last predecessorf^[length j - 1] (start j)of thej-th compressed edge.
Main results #
Cslib.FunctionalGraph.exists_forest_anchor: every state incheckpointHull f Hhas an anchor.Cslib.FunctionalGraph.forestAnchor_unique: the anchor of any state incheckpointHull f His unique.Cslib.FunctionalGraph.forest_anchor_contains: oncheckpointHull f H, an anchor is a mark reachingyin at most2 * Lsteps through which every mark reachingymust pass.Cslib.FunctionalGraph.forest_navigation_spec: exact transient reachability via two selected records, interval labels, and short orbit prefixes.Cslib.FunctionalGraph.exists_forest_edge_table: existence ofForestEdgeTable f H L.Cslib.FunctionalGraph.ForestEdgeTable.key_injective: the last-predecessor keys of the table are pairwise distinct.Cslib.FunctionalGraph.ForestEdgeTable.anchor_iff: characterization ofForestAnchorvia table keys.
References #
- Adapted from lean/Proofs/ForestNavigation.lean in S. Schlesinger, Square-root circuit bounds for iterated functions.
If every orbit repeats among its first L states or meets H within 2 * L steps, every
state of checkpointHull f H has an anchor.
Every state in checkpointHull f H has at most one anchor.
All eligible keys are safe on hull points; selection need not choose the first key.
The finite table stores one short edge for each nonroot marked vertex.
- count : ℕ
Number of stored compressed edges.
Lower marked endpoint of each compressed edge.
Step length of each compressed edge.
- edge (j : Fin self.count) : IsForestEdge f H (self.start j) (self.length j)
Every entry is a valid compressed edge.
Every compressed edge has length at most
2 * L.- start_injective : Function.Injective self.start
Lower endpoints are pairwise distinct.
- complete (a : α) : a ∈ forestMarks f H → 0 < transientDepth f a → ∃ (j : Fin self.count), self.start j = a
Every non-root mark in
forestMarks f Happears in the table. The number of edges is at most
(forestMarks f H).card.
Instances For
If every orbit repeats among its first L states or meets H within 2 * L steps, a table
of short compressed edges for the non-root marks exists.
The last predecessor before the upper endpoint of the j-th compressed edge.
Instances For
Distinct table entries have distinct last-predecessor keys.
The edge dictionary and the depth filter characterize exactly the edge-anchor candidates.