Inductive sequentialization of asynchronous programs
Bernhard Kragl, Constantin Enea, Thomas A. Henzinger, Suha Orhun Mutluergil, Shaz Qadeer
Abstract
Asynchronous programs are notoriously difficult to reason about because they spawn computation tasks which take effect asynchronously in a nondeterministic way. Devising inductive invariants for such programs requires understanding and stating complex relationships between an unbounded number of computation tasks in arbitrarily long executions. In this paper, we introduce inductive sequentialization, a new proof rule that sidesteps this complexity via a sequential reduction, a sequential program that captures every behavior of the original program up to reordering of coarse-grained commutative actions. A sequential reduction of a concurrent program is easy to reason about since it corresponds to a simple execution of the program in an idealized synchronous environment, where processes act in a fixed order and at the same speed. We have implemented and integrated our proof rule in the CIVL verifier, allowing us to provably derive fine-grained implementations of asynchronous programs. We have successfully applied our proof rule to a diverse set of message-passing protocols, including leader election protocols, two-phase commit, and Paxos.
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 fce8b143-95d7-4bbf-b2d0-78f13ff567cdCited by top-tier papers11
- Trillium: Higher-Order Concurrent and Distributed Separation Logic for Intensional RefinementAmin Timany, Simon Oddershede Gregersen, Léo Stefanesco, Jonas Kastberg Hinrichsen et al.POPL 2024 · 14 citations
- Mostly Automated Verification of Liveness Properties for Distributed Protocols with Ranking FunctionsJianan Yao, Runzhou Tao, Ronghui Gu, Jason NiehPOPL 2024 · 12 citations
- 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
- Commutativity Simplifies Proofs of Parameterized ProgramsAzadeh Farzan, Dominik Klumpp, Andreas PodelskiPOPL 2024 · 11 citations
- Refinement for Structured Concurrent ProgramsBernhard Kragl, Shaz Qadeer, Thomas A. HenzingerCAV 2020 · 10 citations
Builds on1
Related papers
- Sound sequentialization for concurrent program verificationAzadeh Farzan, Dominik Klumpp, Andreas PodelskiPLDI 2022 · 24 citations
- Message Chains for Distributed System VerificationFederico Mora, Ankush Desai, Elizabeth Polgreen, Sanjit A. SeshiaOOPSLA 2023 · 7 citations
- DuoAI: Fast, Automated Inference of Inductive Invariants for Verifying Distributed ProtocolsJianan Yao, Runzhou Tao, Ronghui Gu, Jason NiehOSDI 2022 · 50 citations
- The anchor verifier for blocking and non-blocking concurrent softwareCormac Flanagan, Stephen N. FreundOOPSLA 2020 · 7 citations
- Basilisk: Using Provenance Invariants to Automate Proofs of Undecidable ProtocolsTony Nuda Zhang, Keshav Singh, Tej Chajed, Manos Kapritsos et al.OSDI 2025 · 9 citations
