Aneris: A Mechanised Logic for Modular Reasoning about Distributed Systems
Conference Paper
Building network-connected programs and distributed systems is a powerful way to provide scalability and availability in a digital, always-connected era. However, with great power comes great complexity. Reasoning about distributed systems is well-known to be difficult.
In this paper we present Aneris, a novel framework based on separation logic supporting modular, node-local reasoning about concurrent and distributed systems. The logic is higher-order, concurrent, with higher-order store and network sockets, and is fully mechanized in the Coq proof assistant. We use our framework to verify an implementation of a load balancer that uses multi-threading to distribute load amongst multiple servers and an implementation of the two-phase-commit protocol with a replicated logging service as a client. The two examples certify that Aneris is well-suited for both horizontal and vertical modular reasoning.
The bibtex source for this publication:
@inproceedings{DBLP:conf/esop/Krogh-Jespersen20,
author = {Morten Krogh{-}Jespersen and
Amin Timany and
Marit Edna Ohlenbusch and
Simon Oddershede Gregersen and
Lars Birkedal},
editor = {Peter M{"{u}}ller},
title = {Aneris: {A} Mechanised Logic for Modular Reasoning about Distributed
Systems},
booktitle = {Programming Languages and Systems - 29th European Symposium on Programming,
{ESOP} 2020, Held as Part of the European Joint Conferences on Theory
and Practice of Software, {ETAPS} 2020, Dublin, Ireland, April 25-30,
2020, Proceedings},
series = {Lecture Notes in Computer Science},
volume = {12075},
pages = {336--365},
publisher = {Springer},
year = {2020},
url = {https://doi.org/10.1007/978-3-030-44914-8\_13},
doi = {10.1007/978-3-030-44914-8\_13},
timestamp = {Mon, 04 May 2020 13:23:23 +0200},
biburl = {https://dblp.org/rec/conf/esop/Krogh-Jespersen20.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}