theorem
Hex.GraphIso.Nauty.Sparse.Limited.budgetPolicy
{n : Nat}
(g : Graph n)
(inf tcLevel limit : Nat)
:
Generic.Preserve g inf tcLevel (Budget limit)
Every executed policy callback conserves admitted visits plus quota.
theorem
Hex.GraphIso.Nauty.Sparse.Limited.node_budget
{n limit : Nat}
{s : State n}
(h : Budget limit s)
(g : Graph n)
(inf tcLevel fuel level numcells : Nat)
(first : Bool)
:
Budget limit (Generic.node first g inf tcLevel fuel level numcells s).snd
The actual mutual recursion conserves the quota through all returns.
theorem
Hex.GraphIso.Nauty.Sparse.Limited.runColored?_visited
{n k limit : Nat}
{G : Sparse.Colored n k}
{s : State n}
(h : runColored? limit G = some s)
:
theorem
Hex.GraphIso.Nauty.Sparse.Limited.frozenPolicy
{n : Nat}
(g : Graph n)
(inf tcLevel : Nat)
(s : State n)
(hs : s.exhausted = true)
:
Generic.Preserve g inf tcLevel fun (t : State n) => t = s
After exhaustion every callback retains the entire wrapped state. The native payload cannot be changed by unwinding or sibling processing.