theorem
Hex.GraphIso.Nauty.classify_reference
{n : Nat}
(ctx : Ctx n)
(level numcells : Nat)
(st : Search n)
:
Classifying a node never replaces the first-path reference.
Recording a generator preserves the first-path reference.
theorem
Hex.GraphIso.Nauty.pruneReturn_reference
{n : Nat}
{κ : Type}
(level : Nat)
(st : SearchState n κ)
:
Pruning past a leaf preserves the first-path reference.
theorem
Hex.GraphIso.Nauty.referencePolicy
{n : Nat}
(ctx : Ctx n)
(inf tcLevel : Nat)
:
Generic.ReferencePolicy ctx inf tcLevel SearchState.reference
The search's off-path operations preserve all first-path reference fields.
theorem
Hex.GraphIso.Nauty.node_reference
{n : Nat}
(ctx : Ctx n)
(inf tcLevel fuel level numcells : Nat)
(st : Search n)
:
SearchState.reference (node false ctx inf tcLevel fuel level numcells st).snd = SearchState.reference st
Off-path search preserves the saved first-path codes, targets, and leaf.
theorem
Hex.GraphIso.Nauty.sweep_reference
{n : Nat}
(first : Bool)
(ctx : Ctx n)
(inf tcLevel fuel cfuel level numcells tc tv1 index : Nat)
(cursor : Option Nat)
(cell : VSet n)
(st : Search n)
(hpast : Generic.Past first tv1 cursor)
:
SearchState.reference (sweep first ctx inf tcLevel fuel cfuel level numcells tc tv1 cursor cell index st).snd.snd = SearchState.reference st
A sweep past its first child preserves the saved first-path reference.