pub fn witness_perspective(
model: &[bool],
generators: &[Perm],
num_vars: usize,
) -> Vec<(Vec<bool>, Perm)>Expand description
Symmetry-break across the witness’s perspective of the other witnesses. From witness m, every
other witness in its orbit is reached by some symmetry — but many symmetries land on the same one
(they differ by a stabilizer element of m). The symmetry-broken perspective quotients that
redundancy out: exactly one representative transformation per distinct witness m can see — a
transversal of the coset space G / Stab(m). The returned (witness, σ) pairs satisfy σ·m = witness, and their count is |G| / |Stab(m)| = |orbit(m)| (orbit–stabilizer). The first entry is
(m, identity): the witness’s view of itself.