Skip to main content

witness_perspective

Function witness_perspective 

Source
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.