| Crates.io | merc_reduction |
| lib.rs | merc_reduction |
| version | 1.0.0 |
| created_at | 2025-12-28 16:02:53.858587+00 |
| updated_at | 2025-12-28 16:02:53.858587+00 |
| description | Crate for reducing and comparing labelled transition systems modulo various bisimulation equivalences |
| homepage | https://mercorg.github.io/merc/ |
| repository | https://github.com/MERCorg/merc |
| max_upload_size | |
| id | 2009041 |
| size | 137,328 |
This crate provides various algorithms for reducing labeled transition systems
(LTS) modulo various equivalence relations, see merc_lts. These algorithms can
also be used to compare LTS for equivalence. For now the equivalences that are
supported are strong bisimulation, branching bisimulation, and weak
bisimulation.
The main functionalities of this crate of provided by the reduce_lts and
compare_lts functions, which can be used to reduce and compare LTS using all
available equivalence relations. These functions, and many functions in this crate,
accept the inputs by value, since these reductions often need to preprocess the given
LTS (.e.g,)
use merc_lts::LTS;
use merc_lts::read_aut;
use merc_reduction::reduce_lts;
use merc_reduction::Equivalence;
use merc_utilities::Timing;
let lts = read_aut(b"des(0, 6, 7)
(0, a, 1)
(0, a, 2)
(1, b, 3)
(1, c, 4)
(2, b, 5)
(2, c, 6)
" as &[u8], Vec::new()).unwrap();
let mut timings = Timing::new();
assert_eq!(lts.num_of_states(), 7); // The original has 6 states
let reduced = reduce_lts(lts, Equivalence::StrongBisim, &mut timings);
assert_eq!(reduced.num_of_states(), 3);
This crate was developed by Jan J. Martens and Maurice Laveaux. The main signature based branching bisimulation algorithm is described in the paper:
"Faster Signature Refinement for Branching Bisimilarity Minimization". Jan J. Martens, Maurice Laveaux. TACAS 2026.
This crate contains minimal unsafe code, but modules that don't use unsafe code
are clearly marked as such.
We do not maintain an official minimum supported rust version (MSRV), and it may be upgraded at any time when necessary.
All MERC crates are licensed under the BSL-1.0 license. See the LICENSE file in the repository root for more information.