Documentation

HexGraphIso.Nauty.Sparse.PathCodes

inductive Hex.GraphIso.Nauty.Sparse.CodePath {n : Nat} (G : SparseGraph n) :
Nat → RefineSt n → List (Nat × Nat) → Nat → RefineSt n → List Nat → Type

A native descent carrying each executed refinement code, including the terminal node's code. The sentinel is recorded separately by leaf installation. Scratch arguments are the actual arguments at each step.

Instances For
    def Hex.GraphIso.Nauty.Sparse.CodePath.Selects {n : Nat} {G : SparseGraph n} (tcLevel : Nat) {base last : Nat} {root leaf : RefineSt n} {path : List (Nat × Nat)} {codes : List Nat} :
    CodePath G base root path last leaf codes → Prop

    Every step follows the native unhinted target rule at its actual refined state. The first-path construction establishes this predicate.

    Equations
    Instances For
      theorem Hex.GraphIso.Nauty.Sparse.CodePath.descent {n : Nat} {G : SparseGraph n} {base last : Nat} {root leaf : RefineSt n} {path : List (Nat × Nat)} {codes : List Nat} (h : CodePath G base root path last leaf codes) :
      DescPath G base root path last leaf

      Forgetting codes retains the exact same native descent.

      theorem Hex.GraphIso.Nauty.Sparse.CodePath.length {n : Nat} {G : SparseGraph n} {base last : Nat} {root leaf : RefineSt n} {path : List (Nat × Nat)} {codes : List Nat} (h : CodePath G base root path last leaf codes) :
      codes.length = path.length + 1
      theorem Hex.GraphIso.Nauty.Sparse.CodePath.head {n : Nat} {G : SparseGraph n} {base last : Nat} {root leaf : RefineSt n} {path : List (Nat × Nat)} {codes : List Nat} (h : CodePath G base root path last leaf codes) :
      codes[0]! = root.longcode