theorem
Hex.GraphIso.Nauty.Sparse.Order.cheap
{n : Nat}
(first : Bool)
(level : Nat)
(st : State n)
:
theorem
Hex.GraphIso.Nauty.Sparse.Order.child
{n : Nat}
(first : Bool)
(level tc tv : Nat)
(st : State n)
:
theorem
Hex.GraphIso.Nauty.Sparse.Order.prepare
{n : Nat}
(g : Graph n)
(tcLevel level numcells : Nat)
(st : State n)
:
Refinement, target selection and first-code installation retain the incoming accumulator before the first child is individualized.
theorem
Hex.GraphIso.Nauty.Sparse.Order.policy
{n : Nat}
(g : Graph n)
(inf tcLevel value : Nat)
:
Generic.StablePolicy g inf tcLevel fun (st : State n) => st.order = value
The off-path policy preserves the actual order accumulator through every refinement, admission, pruning return and recovery.
theorem
Hex.GraphIso.Nauty.Sparse.Order.sweep
{n : Nat}
(first : Bool)
(g : Graph n)
(inf tcLevel fuel cfuel level numcells tc tv1 index : Nat)
(cursor : Option Nat)
(cell : VSet n)
(st : State n)
(hpast : Generic.Past first tv1 cursor)
:
theorem
Hex.GraphIso.Nauty.Sparse.Order.first
{n : Nat}
(g : Graph n)
(inf tcLevel fuel cfuel level numcells tc tv index : Nat)
(cell : VSet n)
(st : State n)
(horbit : st.orbits[tv]! = tv)
:
The full first sweep retains exactly the guiding child's order accumulator, before the receiver multiplies by its own index.