A returned generator retains its reference endpoint or its strictly smaller coset image. Cleanup does not erase this evidence.
- first {n : Nat} {κ : Type} {ctx : Ctx n} {target : Nat} {out : SearchState n κ} (returned : target = out.gcaFirst) (carrier : LabelCarrier ctx out.firstlab out.lab out.genTrace) : RefReturn ctx target out
- canon {n : Nat} {κ : Type} {ctx : Ctx n} {target : Nat} {out : SearchState n κ} (returned : target = out.gcaCanon) (carrier : LabelCarrier ctx out.canonlab out.lab out.genTrace) : RefReturn ctx target out
- orbit {n : Nat} {κ : Type} {ctx : Ctx n} {target : Nat} {out : SearchState n κ} (returned : target = out.gcaFirst) (smaller : out.orbits[out.cosetindex]! < out.cosetindex) : RefReturn ctx target out
Instances For
A comparison prune can only return below one of its two saved subtree boundaries. This statement has no generator premise.
A first-reference classification supplies the scatter's complete pointwise action using the returned scratch and reference sizes.
Every automorphism verdict carries evidence after its leaf action, including canonical returns that do not merge any orbit.
Every non-generator leaf exit is bounded by a saved subtree boundary, including installation of a better canonical leaf.
Fixed-point cleanup preserves the emitted reference carrier.
An actual unconsumed return above both subtree boundaries carries the emitted automorphism evidence through every intermediate cleanup.
A short-prune request never targets the emitting first ancestor.
An off-path node cannot request short pruning at its first ancestor. Only an enclosing first-child update could change that ancestor.