γ fixes each cell's content set: the labelling mapped through
γ is cell-wise a permutation of itself.
Equations
- Hex.GraphIso.Nauty.CellStab ptn level lab γ = Hex.GraphIso.Nauty.cellsPerm ptn level lab (Array.map (fun (w : Nat) => γ[w]!) lab)
Instances For
The composite permutation array carried by a word.
Equations
- Hex.GraphIso.Nauty.wordPerm nn [] = Array.range nn
- Hex.GraphIso.Nauty.wordPerm nn (γ :: w) = Hex.GraphIso.Nauty.composePerm (Hex.GraphIso.Nauty.wordPerm nn w) γ nn
Instances For
A word of stored generators composes to a checked automorphism that still stabilizes the cells and acts as the word does.
Iterated forward closure of a vertex set under the store. Any
fuel is sound; nn rounds saturate.
Equations
- Hex.GraphIso.Nauty.orbitClose nn gens 0 x✝ = x✝
- Hex.GraphIso.Nauty.orbitClose nn gens fuel.succ x✝ = Hex.GraphIso.Nauty.orbitClose nn gens fuel (Hex.GraphIso.Nauty.orbitStepSet nn gens x✝)
Instances For
The fmptn-style skip: child o is dropped when its target
vertex reaches an earlier sibling's under forward closure of the
store. No single carrying generator is exhibited.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An orbit-pruned position's key repeats an earlier sibling's: the
orbit path composes to a checked, cell-stabilizing automorphism
carrying one breakout n labelling to the other, and specNode_autom
transports the subtree key. This is the justification of the
fmptn discipline at one node.
Connectivity by a forward word over a generator store: some list
of stored arrays, applied leftmost first, carries u to v.
Equations
Instances For
A bounded injective array returns every vertex to itself under some positive number of forward applications.
Symmetry of forward-word connectivity over bounded injective generators: the inverse of each letter is one of its forward powers.
Soundness of an orbit-pointer array: every parent pointer
descends weakly and is R-connected to its vertex. Descent keeps
every pointer below n and makes the chase loops terminate within
their fuel, but soundness never needs the latter fact.
Equations
Instances For
The k-fold iterated parent pointer, as any chase computes it.
Equations
- Hex.GraphIso.Nauty.ptrIter orbits v 0 = v
- Hex.GraphIso.Nauty.ptrIter orbits v k.succ = orbits[Hex.GraphIso.Nauty.ptrIter orbits v k]!
Instances For
The connectivity relation the search's orbit array maintains: both vertices in range, joined by a forward word over the store.
Equations
- Hex.GraphIso.Nauty.OrbConn gens n a b = (a < n ∧ b < n ∧ Hex.GraphIso.Nauty.WordConn gens a b)
Instances For
The identity orbit array is sound for any store.
orbjoin with a stored generator keeps every pointer justified:
the run-level per-admission step. hγ names the workperm's
membership in the store the pointers are read against, so joining
with a newly admitted generator instantiates gens to the store
after admission (earlier pointers transport by orbSound_orbConn_mono).
The consumption form at the transcription's prune sites: a consulted parent pointer is a forward word of stored generators, with both endpoints in range.