Actris: session-type based reasoning in separation logic
- Jonas Kastberg Hinrichsen,
- ,
- Robbert Krebbers
- ,
- Delft University of Technology
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOpen access
Publication Information
Output type
Research Output:
Conference Article in Proceeding or Book/Report chapter
Article in proceedings
Peer-reviewOriginal language
EnglishArticle number
6Pages from-to (Number of pages)
Pages 6:1 (30 pages)Publication milestones
- Published - 2020
Publication status
Published - 2020
Volume
4Publisher
Association for Computing Machinery, United StatesPublication IDs
- Scopus: 85079453170
Host publication title
Proceedings of the ACM on Programming LanguagesHost publication editors
- Philip Wadler
Abstract
Message passing is a useful abstraction to implement concurrent programs. For real-world systems, however,
it is often combined with other programming and concurrency paradigms, such as higher-order functions,
mutable state, shared-memory concurrency, and locks. We present Actris: a logic for proving functional
correctness of programs that use a combination of the aforementioned features. Actris combines the power
of modern concurrent separation logics with a first-class protocol mechanism—based on session types—for
reasoning about message passing in the presence of other concurrency paradigms. We show that Actris
provides a suitable level of abstraction by proving functional correctness of a variety of examples, including a
distributed merge sort, a distributed load-balancing mapper, and a variant of the map-reduce model, using
relatively simple specifications. Soundness of Actris is proved using a model of its protocol mechanism in the
Iris framework. We mechanised the theory of Actris, together with tactics for symbolic execution of programs,
as well as all examples in the paper, in the Coq proof assistant
it is often combined with other programming and concurrency paradigms, such as higher-order functions,
mutable state, shared-memory concurrency, and locks. We present Actris: a logic for proving functional
correctness of programs that use a combination of the aforementioned features. Actris combines the power
of modern concurrent separation logics with a first-class protocol mechanism—based on session types—for
reasoning about message passing in the presence of other concurrency paradigms. We show that Actris
provides a suitable level of abstraction by proving functional correctness of a variety of examples, including a
distributed merge sort, a distributed load-balancing mapper, and a variant of the map-reduce model, using
relatively simple specifications. Soundness of Actris is proved using a model of its protocol mechanism in the
Iris framework. We mechanised the theory of Actris, together with tactics for symbolic execution of programs,
as well as all examples in the paper, in the Coq proof assistant
Publication metrics
PlumX, opens in new tab
Captures
16
Citations
40
