theorem
Hex.GraphIso.Nauty.testcanlab_fst
{n : Nat}
(ctx : Ctx n)
(canong : Array (VSet n))
(lab : Array Nat)
:
(testcanlab ctx canong lab).fst = ordInt (listCmp VSet.rowCmp (leafRows ctx lab) (List.map (fun (x : Nat) => canong[x]!) (List.range n)))
testcanlab returns the trichotomy of the lexicographic VSet.rowCmp
comparison of the leaf rows against the stored rows.
theorem
Hex.GraphIso.Nauty.leafEvent_faithful
{n : Nat}
{ctx : Ctx n}
{canong : Array (VSet n)}
{canonlab lab : Array Nat}
{samerows : Nat}
(hinv : CanongInv ctx canong canonlab samerows)
:
(testcanlab ctx (updatecan ctx canong canonlab samerows) lab).fst = ordInt (listCmp VSet.rowCmp (leafRows ctx lab) (leafRows ctx canonlab)) ∧ CanongInv ctx (updatecan ctx canong canonlab samerows) canonlab n ∧ CanongInv ctx (updatecan ctx canong canonlab samerows) lab
(testcanlab ctx (updatecan ctx canong canonlab samerows) lab).snd
Canonical row updates and leaf comparison implement lexicographic leaf-row comparison.