/// If `eliminate_inert_taus` is true then non self-loop tau steps \[p\] -tau-> \[p\] are eliminated.
// Introduce the transitions based on the block numbers, the number of blocks is a decent approximation for the number of transitions.
&& !(eliminate_tau_loops && lts.is_hidden_label(transition.label) && state_index == transition.to)
let mut builder = LtsBuilderFast::with_capacity(lts.labels().into(), Vec::new(), lts.num_of_transitions());
fn is_redundant_transition<L: LTS>(lts: &L, from: StateIndex, label: LabelIndex, target: StateIndex) -> bool {
// Add all transitions from the representative state (or the bottom state if BRANCHING) to the quotient LTS.
if !(eliminate_tau_loops && lts.is_hidden_label(transition.label) && candidate == transition.to) {
fn check_quotient_equivalence(rng: &mut StdRng, equivalence: Equivalence, test_name: &str) {
check_quotient_equivalence(rng, Equivalence::StrongBisim, "test_random_strong_bisim_quotient");
check_quotient_equivalence(rng, Equivalence::BranchingBisim, "test_random_branching_bisim_quotient");