Partitions s.env's record names into structural-equivalence classes
via MinimizeSA-style partition refinement (module doc, steps 2-3): an
initial localSignature grouping refined to a fixpoint by which
block each same-labeled ref field points to.
Operates on s.env exactly as given -- it does not prune first, so
unreachable or unsatisfiable records are still classified. normalize
calls this after its own prune/isEmpty steps; lint calls it on the
raw schema so structurally-identical records are reported as authored.
Each returned block is a list of names; a block of length > 1 is a set
of records with identical structure.
Partitions
s.env's record names into structural-equivalence classes via MinimizeSA-style partition refinement (module doc, steps 2-3): an initiallocalSignaturegrouping refined to a fixpoint by which block each same-labeled ref field points to.Operates on
s.envexactly as given -- it does not prune first, so unreachable or unsatisfiable records are still classified.normalizecalls this after its ownprune/isEmptysteps;lintcalls it on the raw schema so structurally-identical records are reported as authored. Each returned block is a list of names; a block of length > 1 is a set of records with identical structure.