The window-scan bookkeeping never reads the labelling.
The window scan reads the counts only through the multiplicities.
One window step's partition effect: the group end boundary, if it lies inside the cell.
The stable counting redistribution groups the segment by count
value: with counts read off the segment, segmentOf is the
concatenation of the value filters.
Concatenating the value-filters over distinct values that cover the list recovers the list, as a multiset.
The window scan's boundary writes preserve cell-contents equivalence of the final labellings: each nonempty group becomes a cell whose two contents are permutations of matching value filters.
One nontrivial-splitter cell preserves cell-contents equivalence: the positional results agree and the labellings stay cell-equivalent for the result's partition, which changes only strictly inside the processed cell.
New actives after the trivial split start cells: the reused cell start, or the fresh boundary written one position earlier.
One active-cell iteration preserves cell-contents equivalence.
The active-cell loop preserves cell-contents equivalence.
nauty's refine depends on the ordered partition only through the
cell contents: cell-equivalent labellings refine to equal positions and
codes with cell-equivalent labellings.