processnode preserves the node invariant, installing at most a
reached labelling.
Transport the processnode canonlab dichotomy along projection
equations, keyed on the output state.
The root state satisfies the search invariant.
The transcribed search's canonical labelling has full size.
The transcribed search's canonical labelling is reached: it
fills every cell of the initial partition with that cell's own
vertices. This is the simulation clause the rest of the correctness
argument shares, and it supplies the transcription-side residuals of
certifyCanon?_isSome.
The transcribed search's canonical labelling passes the colour
monotonicity check: one of the two transcription-side residuals of
certifyCanon?_isSome.
The transcribed search's canonical labelling is a permutation of
the vertices: the label well-formedness residual of
certifyCanon?_isSome.