Every stored generator passes the executable automorphism check against the context's rows.
Equations
- Hex.GraphIso.Nauty.ValidStore ctx S = ∀ (γ : Array Nat), γ ∈ S → Hex.GraphIso.Nauty.checkAutom ctx.g γ = true
Instances For
The child sweep with a growing store: each unpruned child is searched with the store as it stands, and the store that child returns, possibly grown at leaves below it, is what later siblings are pruned against.
Equations
- One or more equations did not get rendered due to their size.
- Hex.GraphIso.Nauty.sweepG ctx tcLevel adm fuel level rsLab rsPtn tc numcells [] x✝ = x✝
Instances For
One node step at a refined state. At a discrete leaf the oracle's
proposals join the store. At a live node the first child absorbs the
incumbent and sweepG threads the store across the rest.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Branch-and-bound with code prune, generator prune, and a store that grows at leaves and travels forward through the search order.
Equations
- One or more equations did not get rendered due to their size.
- Hex.GraphIso.Nauty.searchNodeG ctx tcLevel adm 0 x✝⁶ x✝⁵ x✝⁴ x✝³ x✝² x✝¹ x✝ = (x✝¹.getD { codes := [], rows := [] }, x✝)
- Hex.GraphIso.Nauty.searchNodeG ctx tcLevel adm fuel.succ x✝⁵ x✝⁴ x✝³ x✝² x✝¹ none x✝ = Hex.GraphIso.Nauty.stepG ctx tcLevel adm fuel x✝⁵ (Hex.GraphIso.Nauty.refine ctx x✝⁵ x✝⁴ x✝³ x✝² x✝¹) none x✝
Instances For
The maximum over child positions 0..j collapses to the maximum
over 0..j-1 when position j's key repeats an earlier one.
Child positions 1..m as a shifted range.
Extending the maximum over 0..j-1 by position j's key gives
the maximum over 0..j.
The sweep from position j with a valid store computes the full
sweep maximum: pruned positions are covered by earlier keys via the
store valid at the moment of the test, and the store stays valid as
it grows through the children.
One growing-store step at a refined state computes the incumbent maximum against the unpruned node key.
The growing-store branch-and-bound computes exactly the maximum of the incumbent and the unpruned subtree key, and returns a valid store, for any valid initial store and any oracle proposing only checked automorphisms.
The growing-store search from an empty incumbent: code prune,
generator prune, and a store seeded with gens0 that grows at leaves
by the oracle's proposals.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For any valid seed store and any oracle proposing only checked automorphisms, the growing-store search computes the nauty-semantic canonical key.