Multris: Functional Verification of Multiparty Message Passing in Separation Logic
We introduce Multris, a separation logic for verifying functional correctness of programs that combine multiparty message-passing communication with shared-memory concurrency. The foundation of our work is a novel concept of multiparty protocol consistency , which guarantees safe communication among a set of parties, provided each party adheres to its prescribed protocol. Our concept of protocol consistency is inspired by the bottom-up approach for multiparty session types. However, by considering it in the context of separation logic instead of a type system, we go further in terms of generality by supporting new notions of implicit transfer of knowledge and implicit transfer of resources . We develop tactics for automatically verifying protocol consistency and for reasoning about message-passing operations in Multris. We evaluate Multris on a range of examples, including the well-known two- and three-buyer protocols, as well as a new verification benchmark based on Chang and Roberts's ring leader election protocol. To ensure the reliability of our work, we prove soundness of Multris w.r.t. a low-level channel semantics using the Iris framework in Coq.
Authors
- Robbert Krebbers (ORCID: https://orcid.org/0000-0002-1185-5237)
- Jonas Kastberg Hinrichsen (ORCID: https://orcid.org/0000-0001-6143-9031)
- Jules Jacobs (ORCID: https://orcid.org/0000-0003-1976-3182)
Institutions
- Radboud University Nijmegen (NL)
- Aarhus University (DK)
- Cornell University (US)
Publication Details
- Journal
- Proceedings of the ACM on Programming Languages
- Published
- 2024-10-08
- DOI
- https://doi.org/10.1145/3689762
- Citations
- 4
- Primary Topic
- Logic, programming, and type systems
- Type
- article
- Field-Weighted Citation Impact
- 1.39
Funders
- Villum Fonden