Documentation

HexGraphIso.Nauty.Sparse.Cert.Rules

structure Hex.GraphIso.Nauty.Sparse.Replay.Valid {n : Nat} (G : SparseGraph n) (B : Key n) (leaves : List (SpecLeaf n)) (attained : Bool) :

A successful replay bounds every leaf and records whether the claimed key is attained. The label witness comes from an executed tree leaf.

Instances For
    def Hex.GraphIso.Nauty.Sparse.Replay.all {α : Type u_1} (check : α → Option Bool) :

    Combine all child checks, propagating rejection and recording attainment. The explicit recursion also reduces after importing the checker.

    Equations
    Instances For
      theorem Hex.GraphIso.Nauty.Sparse.Replay.all_cons {α : Type u_1} {check : α → Option Bool} {x : α} {xs : List α} {a : Bool} :
      all check (x :: xs) = some a ↔ ∃ (b : Bool), ∃ (c : Bool), check x = some b ∧ all check xs = some c ∧ (b || c) = a
      theorem Hex.GraphIso.Nauty.Sparse.Replay.Valid.append {n : Nat} {G : SparseGraph n} {B : Key n} {xs ys : List (SpecLeaf n)} {a b : Bool} (hx : Valid G B xs a) (hy : Valid G B ys b) :
      Valid G B (xs ++ ys) (a || b)
      theorem Hex.GraphIso.Nauty.Sparse.Replay.all_valid {n : Nat} {α : Type u_1} {G : SparseGraph n} {B : Key n} {check : α → Option Bool} {leaves : α → List (SpecLeaf n)} {xs : List α} {a : Bool} (hcheck : ∀ (x : α), x ∈ xs → ∀ (b : Bool), check x = some b → Valid G B (leaves x) b) (h : all check xs = some a) :
      Valid G B (List.flatMap leaves xs) a
      theorem Hex.GraphIso.Nauty.Sparse.Replay.all_exists {α : Type u_1} {check : α → Option Bool} {xs : List α} (h : ∀ (x : α), x ∈ xs → ∃ (a : Bool), check x = some a) :
      ∃ (a : Bool), all check xs = some a

      Check one actual leaf against a claimed upper bound.

      Equations
      Instances For
        theorem Hex.GraphIso.Nauty.Sparse.Replay.leaf_valid {n : Nat} {G : SparseGraph n} {B : Key n} {l : SpecLeaf n} {a : Bool} (h : leaf G B l = some a) :
        Valid G B [l] a
        theorem Hex.GraphIso.Nauty.Sparse.Replay.leaf_exists {n : Nat} {G : SparseGraph n} {B : Key n} {l : SpecLeaf n} (h : (SpecLeaf.key G l).Le B) :
        ∃ (a : Bool), leaf G B l = some a
        theorem Hex.GraphIso.Nauty.Sparse.Replay.Valid.prepend {n : Nat} {G : SparseGraph n} {B : Key n} {xs : List (SpecLeaf n)} {a : Bool} (h : Valid G B xs a) (c : Nat) :