Equations
- Hex.GraphIso.Nauty.Engine.instBEqExit.beq Hex.GraphIso.Nauty.Engine.Exit.done Hex.GraphIso.Nauty.Engine.Exit.done = true
- Hex.GraphIso.Nauty.Engine.instBEqExit.beq (Hex.GraphIso.Nauty.Engine.Exit.unwind a a_1) (Hex.GraphIso.Nauty.Engine.Exit.unwind b b_1) = (a == b && a_1 == b_1)
- Hex.GraphIso.Nauty.Engine.instBEqExit.beq Hex.GraphIso.Nauty.Engine.Exit.fuel Hex.GraphIso.Nauty.Engine.Exit.fuel = true
- Hex.GraphIso.Nauty.Engine.instBEqExit.beq x✝¹ x✝ = false
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Hex.GraphIso.Nauty.Engine.instBEqLeaf.beq Hex.GraphIso.Nauty.Engine.Leaf.internal Hex.GraphIso.Nauty.Engine.Leaf.internal = true
- Hex.GraphIso.Nauty.Engine.instBEqLeaf.beq Hex.GraphIso.Nauty.Engine.Leaf.autoFirst Hex.GraphIso.Nauty.Engine.Leaf.autoFirst = true
- Hex.GraphIso.Nauty.Engine.instBEqLeaf.beq Hex.GraphIso.Nauty.Engine.Leaf.autoCanon Hex.GraphIso.Nauty.Engine.Leaf.autoCanon = true
- Hex.GraphIso.Nauty.Engine.instBEqLeaf.beq (Hex.GraphIso.Nauty.Engine.Leaf.better a) (Hex.GraphIso.Nauty.Engine.Leaf.better b) = (a == b)
- Hex.GraphIso.Nauty.Engine.instBEqLeaf.beq Hex.GraphIso.Nauty.Engine.Leaf.bad Hex.GraphIso.Nauty.Engine.Leaf.bad = true
- Hex.GraphIso.Nauty.Engine.instBEqLeaf.beq x✝¹ x✝ = false
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
The search globals, stored in one record so array updates need only consume one constructor. Level and target-cell data are call arguments.
- active : VSet n
- fixedpts : VSet n
nauty's automorphism workspace: stored
(fix, mcr)pairs of discovered automorphisms, read byshortpruneandlongprune. OncewsCappairs are present the last slot is overwritten instead of a new one being added.wsCapis 500, the number of pairs that fit in the2 * 500 * msetwordsdensenautysupplies.- wsCap : Nat
- samerows : Nat
- compCanon : Int
- eqlevFirst : Nat
- eqlevCanon : Int
- gcaFirst : Nat
- gcaCanon : Nat
- canonlevel : Nat
- noncheaplevel : Nat
- allsamelevel : Nat
- cosetindex : Nat
- stabvertex : Nat
- numnodes : Nat
- tctotal : Nat
- canupdates : Nat
- numorbits : Nat
- numgenerators : Nat
- numbadleaves : Nat
- maxlevel : Nat
Scratch permutation, allocated at initialization and filled by leaf comparisons.
Instances For
Record an automorphism pair in the bounded workspace. This is
Hex.GraphIso.Nauty.pushAuto on the flat engine state.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The comparison bookkeeping of nauty's othernode between the
refinement and the target-cell choice: the first-path level-code
comparison and the best-so-far level-code comparison.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Choose a target cell exactly when children can be required. Only a canonically smaller off-path node uses the first path's target hint.
Equations
- One or more equations did not get rendered due to their size.
Instances For
nauty's firstterminal: install the first leaf as both the first-path
data and the initial best-so-far leaf. This retains the updates of
Hex.GraphIso.Nauty.firstterminal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Scatter the current labelling through a reference labelling. Detach the scratch field while filling it so each element update consumes just the array, rather than reconstructing the search record.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Classify an off-path node, constructing its permutation in the scratch array and comparing canonical rows only after tied levels.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Record a permutation and its workspace pair, then join its orbits. The caller decides whether it counts as a new generator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Return past a bad or newly installed leaf. The all-same level limits the return, and the noncheap level can extend it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Act on the five classifications. Code 2 without an orbit change still records its permutation and requests a short prune when needed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
After the leftmost child, record its greatest common ancestor and the vertex fixed by the generators subsequently reported there.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reopen the partition below the receiving level, as in the rescan of
Hex.GraphIso.Nauty.recover.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Clamp the four level counters in the order of
Hex.GraphIso.Nauty.recover. Equality in the last clamp resets the
comparison with the canonical code.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Intersect with the most recently written workspace pair, as in
Hex.GraphIso.Nauty.shortprune.
Equations
Instances For
Refine a node, classify it, and sweep its surviving children. Only the leftmost child of a first-path node remains on the first path.
Equations
- One or more equations did not get rendered due to their size.
- Hex.GraphIso.Nauty.Engine.node first ctx inf tcLevel 0 level numcells st = (Hex.GraphIso.Nauty.Engine.Exit.fuel, st)
Instances For
Visit remaining target vertices in order, rereading the cell after
each prune. The orbit index includes skipped vertices on the first path.
Nodes return an unwind or fuel, so the done arm after a child is unreachable.
Equations
- One or more equations did not get rendered due to their size.
- Hex.GraphIso.Nauty.Engine.sweep first ctx inf tcLevel fuel cfuel level numcells tc tv1 none tcell index st = (Hex.GraphIso.Nauty.Engine.Exit.done, index, st)
- Hex.GraphIso.Nauty.Engine.sweep first ctx inf tcLevel fuel 0 level numcells tc tv1 (some val) tcell index st = (Hex.GraphIso.Nauty.Engine.Exit.fuel, index, st)
Instances For
Run the search and retain the final state and exit for diagnostics.
On a valid nonempty input, cell count is at least the level: refinement
never decreases it and each child increases it. Thus node depth is at most
n, so node fuel n + 2 suffices. A sweep visits at most n vertices in
strictly increasing order, so sweep fuel n + 1 suffices.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Run the structured search with the certificate producer's result type.
Equations
- Hex.GraphIso.Nauty.Engine.runTraced n g lab0 cellEnds = Hex.GraphIso.Nauty.Engine.finish { g := g } (Hex.GraphIso.Nauty.Engine.runState n g lab0 cellEnds).snd
Instances For
Run the structured search, discarding the trace.
Equations
- Hex.GraphIso.Nauty.Engine.run n g lab0 cellEnds = (Hex.GraphIso.Nauty.Engine.runTraced n g lab0 cellEnds).result
Instances For
Run the structured search on a coloured graph, retaining the trace.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Run the structured search on a coloured graph.