Translate a cached cell start into the fresh selector's compact index, retaining the singleton sentinel.
Equations
- Hex.GraphIso.Nauty.Sparse.Target.encode keys n k = if k = n then n else List.idxOf k keys
Instances For
theorem
Hex.GraphIso.Nauty.Sparse.Target.scores_encode
{keys row : List Nat}
{n : Nat}
{rankSize degree : Nat → Nat}
(hn : keys.Nodup)
(hsentinel : ¬n ∈ keys)
(hlen : keys.length ≤ n)
(hr : ∀ (v : Nat), v ∈ row → v = n ∨ v ∈ keys)
(hs : ∀ (i : Nat), i < keys.length → rankSize i = degree keys[i]!)
:
List.countP (Join.qualifies (List.map (encode keys n) row) rankSize) (List.range keys.length) = List.countP (Join.qualifies row degree) keys
Compact-index join counts equal the counts over actual cell starts.