Model Checking Distributed Protocols in Must
Constantin Enea, Dimitra Giannakopoulou, Michalis Kokologiannakis, Rupak Majumdar
Abstract
We describe the design and implementation of Must, a framework for modeling and automatically verifying distributed systems. Must provides a concurrency API that supports multiple communication models, on top of a mainstream programming language, such as Rust. Given a program using this API, Must verifies it by means of a novel, optimal dynamic partial order reduction algorithm that maintains completeness and optimality for all communication models supported by the API.
We use Must to design and verify models of distributed systems in an industrial context. We demonstrate the usability of Must's API by modeling high-level system idioms (e.g., timeouts, leader election, versioning) as abstractions over the core API, and demonstrate Must's scalability by verifying systems employed in production (e.g., replicated logs, distributed transaction management protocols), the verification of which lies beyond the capacity of previous model checkers.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext b6fb6ac8-9797-4168-9b18-56c7abd9d546Cited by top-tier papers3
- Model-Guided Fuzzing of Distributed SystemsEge Berkay Gulcan, Burcu Kulahcioglu Ozkan, Rupak Majumdar, Srinidhi NagendraOOPSLA 2025 · 3 citations
- The Complexity of Testing Message-Passing ConcurrencyZheng Shi, Lasse Møldrup, Umang Mathur, Andreas PavlogiannisPOPL 2026 · 2 citations
- State Space Estimation for DPOR-Based Model CheckersA. R. Balasubramanian, Mohammad Hossein Khoshechin Jorshari, Rupak Majumdar, Umang Mathur et al.PLDI 2026
Builds on10
- Truly stateless, optimal dynamic partial order reductionMichalis Kokologiannakis, Iason Marmanis, Vladimir Gladstein, Viktor VafeiadisPOPL 2022 · 46 citations
- HMC: Model Checking for Hardware Memory ModelsMichalis Kokologiannakis, Viktor VafeiadisASPLOS 2020 · 29 citations
- Stateless Model Checking Under a Reads-Value-From EquivalencePratyush Agarwal, Krishnendu Chatterjee, Shreya Pathak, Andreas Pavlogiannis et al.CAV 2021 · 25 citations
- Randomized Testing of Byzantine Fault Tolerant AlgorithmsLevin N. Winter, Florena Buse, Daan de Graaf, Klaus von Gleissenthall et al.OOPSLA 2023 · 23 citations
- Greybox Fuzzing of Distributed SystemsRuijie Meng, George Pîrlea, Abhik Roychoudhury, Ilya SergeyCCS 2023 · 22 citations
Related papers
- Much ADO about failures: a fault-aware model for compositional verification of strongly consistent distributed systemsWolf Honoré, Jieung Kim, Ji-Yong Shin, Zhong ShaoOOPSLA 2021 · 12 citations
- Rust yDL: A Program Logic for RustDaniel Drodt, Reiner HähnleFM 2026
- Converos: Practical Model Checking for Verifying Rust OS Kernel ConcurrencyRuize Tang, Minghua Wang, Xudong Sun, Lin Huang et al.USENIX ATC 2025 · 4 citations
- Concrat: An Automatic C-to-Rust Lock API Translator for Concurrent ProgramsJaemin Hong, Sukyoung RyuICSE 2023 · 17 citations
- DRust: Language-Guided Distributed Shared Memory with Fine Granularity, Full Transparency, and Ultra EfficiencyHaoran Ma, Yifan Qiao, Shi Liu, Shan Yu et al.OSDI 2024 · 8 citations
