Documentation

HexGraphIso.Nauty.Sparse.DistanceEquiv

def Hex.GraphIso.Nauty.Sparse.DistanceState.Rel {n : Nat} (σ : Renaming n) (level : Nat) (s t : RefineSt n) (a b : RefineSt n × Nat) :

The two executed distance scans have valid states, the same cursor, and corresponding refinement observations.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem Hex.GraphIso.Nauty.Sparse.DistanceState.step_rel {n : Nat} (σ : Renaming n) (level first : Nat) (s t a b : RefineSt n) (hs : RefineSt.Valid level s) (ht : RefineSt.Valid level t) (hv : ∀ (v : Nat), v < n → s.hits[v]! ≤ n) (hw : ∀ (v : Nat), v < n → t.hits[v]! ≤ n) (hkeys : ∀ (v : Nat), v < n → t.hits[σ.toFun v]! = s.hits[v]!) (ha : DistanceState level s a first) (hb : DistanceState level t b first) (he : RefineSt.Equiv σ level a b) :
    Loop.Rel (Rel σ level s t) (if first ≥ n then ForInStep.done (a, first) else have last := a.cellend[first]!; if first < last then ForInStep.yield (splitCounts level first true a, last + 1) else ForInStep.yield (a, last + 1)) (if first ≥ n then ForInStep.done (b, first) else have last := b.cellend[first]!; if first < last then ForInStep.yield (splitCounts level first true b, last + 1) else ForInStep.yield (b, last + 1))

    One literal distance-loop callback transports its state and its stop/continue choice, including skipped singleton cells.