Correctness of chronological forest events #
Terminal events of Algorithm 1 of [KKR18], arXiv:1602.03124v6. Paths and copied constraints are the actual parent reconstructions of the executable search.
Main results #
search_augment_correct: a returned augmentation is an augmenting f-walk; its flip is valid and removes exactly two defects (Proposition 38, printed p. 18).Meeting.Trace.variable_blossom_isFDAG: the variable-LCA cycle's full graph certificate.
The constraint-LCA case and complete fresh-run blossom endpoint are proved in
CslibFrontier/Algorithms/Lean/EdgeCSP/Forest/Blossom.lean.
A timestamp in a chronological log has only its single recorded incoming port.
Appending fresh children leaves every older visited variable's ancestry unchanged.
Actual ancestry timestamps strictly increase, without any condition on variable names.
Recorded ancestry timestamps agree with the executable incoming-port lookup.
Ancestral steps are chronological with respect to their actual incoming timestamps.
Ancestor nodes carry precisely the copied constraints certified by the incoming arcs.
The path to a step's input is the exact ancestral prefix before that step. This uses actual parent reconstruction, including across copies of the same original constraint.
Before any ancestral copied constraint, its input's entire root path is shared.
The full node prefix through any ancestral step is determined by its input's ancestry.
A step remaining after dropping k steps cannot have a shorter root-side parent path.
An ancestral copied constraint belongs to just one rooted tree. Repeated original constraints at different timestamps are not identified.
Ancestries from different rooted trees have disjoint copied-constraint supports.
Every output variable of a reconstructed ancestry is consistent in the reference labeling. Inconsistent variables are roots, never discovered children.
A nonempty ancestry ends at a discovered, hence consistent, variable.
All ancestral prefixes have the source's internal-consistency and validity properties, including the empty path at an inconsistent root.
The executable common-node list is a prefix of both actual ancestral node lists.
Every common node prefix is contained in the prefix selected by the extractor.
Every index inside the common prefix names the same actual node on both paths.
Whole shared steps carry the same timestamp prefix on both ancestries.
A shared root prefix predates every step on the remaining right arm.
The selected ancestor occurs at the final shared index on each ancestral node list.
A copied-constraint ancestor occurs before a step on each path. The Option branches
in the raw extractor cannot fail on that case, even for timestamp zero.
A variable LCA is the last node of a whole-step common prefix.
A variable ancestor is the actual endpoint of both shared walk prefixes.
Past the last common copied node, the left ancestry shares no copied constraint with the right ancestry. This is derived from exact parent prefixes, not assumed as an event-correctness premise.
At a same-root event the actual raw extractor returns cycle data; neither LCA case is lost through an absent ancestor or an out-of-bounds child port.
The older forest survives terminal pruning as a supported subgraph.
The actual left ancestral path remains directed after terminal pruning.
The actual right ancestral path remains directed after terminal pruning.
The new terminal copy is absent from every older ancestry, including timestamp zero.
Both ancestral paths and the terminal pair give valid flips at every prefix of the actual returned augmentation walk. Reversed prefixes are justified by directed suffixes.
The candidate from two different rooted trees is an actual incidence trail.
Source Proposition 38 at the walk level: the returned candidate is an augmenting f-walk, including internal consistency and validity after every prefix.
Every preparatory root-path flip actually returned by the cycle extractor is valid. This is the preparatory-labeling assertion of source Lemma 41; the remaining blossom assertion additionally requires the closed cycle's complete f-DAG certificate.
The cycle returned by either actual LCA branch is closed at its recorded base.
In the variable-LCA branch, the cycle's actual timestamped graph is an f-DAG after the returned preparatory flip. Both feasibility and no shortcuts are preserved.
Agreement of a terminal tag with the two reconstructed roots.
Instances For
The executable event tag records exactly whether the two ancestries have the same root.
Source Proposition 38 for a fresh executable run: an actual returned augmentation is an augmenting f-walk and its flip is valid and removes exactly two defects.