TY - GEN
T1 - Aneris
T2 - 29th European Symposium on Programming, ESOP 2020, held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020
AU - Krogh-Jespersen, Morten
AU - Timany, Amin
AU - Ohlenbusch, Marit Edna
AU - Gregersen, Simon Oddershede
AU - Birkedal, Lars
PY - 2020/1/1
Y1 - 2020/1/1
N2 - 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.
AB - 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.
KW - Concurrency
KW - Distributed systems
KW - Formal verification
KW - Higher-order logic
KW - Separation logic
UR - https://www.scopus.com/pages/publications/85084006085
U2 - 10.1007/978-3-030-44914-8_13
DO - 10.1007/978-3-030-44914-8_13
M3 - Article in proceedings
AN - SCOPUS:85084006085
SN - 9783030449131
T3 - Lecture Notes in Computer Science
SP - 336
EP - 365
BT - 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, Proceedings
A2 - Müller, Peter
PB - Springer
Y2 - 25 April 2020 through 30 April 2020
ER -