theorem
Hex.GraphIso.Nauty.Sparse.Diff.equal
{n stamp : Nat}
{marks : Array Nat}
{mina : Nat}
{a b : List (Fin n)}
(h : Diff n stamp (List.map Fin.val b) (List.map Fin.val a) marks mina)
(ha : List.Pairwise (fun (x1 x2 : Fin n) => x1 < x2) a)
(hb : List.Pairwise (fun (x1 x2 : Fin n) => x1 < x2) b)
(hlen : a.length = b.length)
(hm : mina = n)
:
theorem
Hex.GraphIso.Nauty.Sparse.Diff.smaller
{n stamp : Nat}
{marks : Array Nat}
{mina : Nat}
{a b : List (Fin n)}
(h : Diff n stamp (List.map Fin.val b) (List.map Fin.val a) marks mina)
(ha : List.Pairwise (fun (x1 x2 : Fin n) => x1 < x2) a)
(hb : List.Pairwise (fun (x1 x2 : Fin n) => x1 < x2) b)
(hlen : a.length = b.length)
{v : Fin n}
(hmark : marks[↑v]! = stamp)
(hlt : ↑v < mina)
:
A surviving old mark below the candidate's least exclusive vertex determines a strict loss for the candidate row.
theorem
Hex.GraphIso.Nauty.Sparse.Diff.greater
{n stamp : Nat}
{marks : Array Nat}
{mina : Nat}
{a b : List (Fin n)}
(h : Diff n stamp (List.map Fin.val b) (List.map Fin.val a) marks mina)
(ha : List.Pairwise (fun (x1 x2 : Fin n) => x1 < x2) a)
(hb : List.Pairwise (fun (x1 x2 : Fin n) => x1 < x2) b)
(hlen : a.length = b.length)
(hm : mina < n)
(hscan : ∀ (v : Nat), v ∈ List.map Fin.val b → marks[v]! = stamp → mina ≤ v)
:
Exhausting the old row without a smaller surviving mark determines a strict win whenever the candidate has an exclusive vertex.