theorem
Hex.GraphIso.Nauty.scratchPolicy
{n : Nat}
(ctx : Ctx n)
(inf tcLevel : Nat)
:
Generic.ReferencePolicy ctx inf tcLevel fun (st : Search n) => st.workperm.size
The off-path operations preserve the scratch allocation exactly.
theorem
Hex.GraphIso.Nauty.sweep_workSize
{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)
:
Later siblings retain the same scratch allocation.
theorem
Hex.GraphIso.Nauty.firstPath_workSize
{n : Nat}
{ctx : Ctx n}
{inf tcLevel fuel level numcells last : Nat}
{st leaf : Search n}
(hpath : Generic.FirstPath ctx tcLevel fuel level numcells st last leaf)
:
The first descent does not use or resize the scratch allocation.
Every scratch scatter in a complete search run has its initial allocation size.