Skip to main content

find_counterexample_symmetric

Function find_counterexample_symmetric 

Source
pub fn find_counterexample_symmetric(
    init: &ProofExpr,
    trans: &dyn Fn(u32) -> ProofExpr,
    property: &dyn Fn(u32) -> ProofExpr,
    max_k: u32,
) -> BmcOutcome
Expand description

Bounded model checking with temporal symmetry breaking. Interchangeable signals (temporal_symmetry_pairs) give a system automorphism that holds at every frame, so a swap lifted uniformly through the unrolling permutes counterexample trajectories. We order each pair at the initial frame (a@0 ≤ b@0, i.e. ¬a@0 ∨ b@0): a sound partial lex-leader that keeps at least one trajectory per symmetry orbit. Hence a counterexample exists under the ordering iff one exists at all, and the shallowest violating depth is unchanged — the verdict matches find_counterexample, with the symmetric search space pruned.