Documentation

HexGraphIso.Nauty.Sparse.Fuel

theorem Hex.GraphIso.Nauty.Sparse.fuelPolicy {n k : Nat} (G : Sparse.Colored n k) (hn : 0 < n) (tcLevel : Nat) :

The production bounds are sufficient for the actual sparse mutual recursion. The frame assertions also cover calls with insufficient bounds.

theorem Hex.GraphIso.Nauty.Sparse.node_noFuel {n k : Nat} (G : Sparse.Colored n k) (hn : 0 < n) (first : Bool) (tcLevel fuel level numcells : Nat) (st : State n) (hl : 1 ≤ level) (h : NodeInv G level numcells st) (hf : n + 1 ≤ level + fuel) :
(Generic.node first (Graph.ofGraph G.graph) (n + 2) tcLevel fuel level numcells st).fst ≠ Generic.Exit.fuel

A valid production node cannot exhaust the established level bound.

theorem Hex.GraphIso.Nauty.Sparse.sweep_noFuel {n k : Nat} (G : Sparse.Colored n k) (hn : 0 < n) (first : Bool) (tcLevel fuel cfuel level numcells tc tv1 index : Nat) (cursor : Option Nat) (cell : VSet n) (st : State n) (hl : 1 ≤ level) (h : Ready G level numcells st) (ht : Generic.Target State.frame level tc cell st) (hv : ∀ (v : Nat), cursor = some v → cell.mem v = true) (hf : n ≤ level + fuel) (hc : Generic.CursorFuel n cfuel cursor) :
(Generic.sweep first (Graph.ofGraph G.graph) (n + 2) tcLevel fuel cfuel level numcells tc tv1 cursor cell index st).fst ≠ Generic.Exit.fuel

The pinned sparse production root never reports exhausted recursion, including order zero. Its existing n + 2 bound is sufficient unchanged.