Aneris: A Mechanised Logic for Modular Reasoning about Distributed Systems

被引:24
作者
Krogh-Jespersen, Morten [1 ]
Timany, Amin [1 ,2 ]
Ohlenbusch, Marit Edna [1 ]
Gregersen, Simon Oddershede [1 ]
Birkedal, Lars [1 ]
机构
[1] Aarhus Univ, Aarhus, Denmark
[2] Katholieke Univ Leuven, Leuven, Belgium
来源
PROGRAMMING LANGUAGES AND SYSTEMS ( ESOP 2020): 29TH EUROPEAN SYMPOSIUM ON PROGRAMMING | 2020年 / 12075卷
关键词
Distributed systems; Separation logic; Higher-order logic; Concurrency; Formal verification; STATE; IMPLEMENTATION; VERIFICATION;
D O I
10.1007/978-3-030-44914-8_13
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:336 / 365
页数:30
相关论文
共 40 条
[1]  
Birkedal L., 2017, LECT NOTES IRIS HIGH
[2]   Dynamic Multirole Session Types [J].
Denielou, Pierre-Malo ;
Yoshida, Nobuko .
POPL 11: PROCEEDINGS OF THE 38TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2011, :435-446
[3]   Views: Compositional Reasoning for Concurrent Programs [J].
Dinsdale-Young, Thomas ;
Birkedal, Lars ;
Gardner, Philippa ;
Parkinson, Matthew ;
Yang, Hongseok .
ACM SIGPLAN NOTICES, 2013, 48 (01) :287-299
[4]  
Dinsdale-Young T, 2010, LECT NOTES COMPUT SC, V6183, P504, DOI 10.1007/978-3-642-14107-2_24
[5]  
Floyd Robert W., 1967, MATH ASPECTS COMPUTE, V19, P1
[6]  
Gray J. N., 1978, Operating Systems. An Advanced Course, P393
[7]   IronFleet: Proving Practical Distributed Systems Correct [J].
Hawblitzel, Chris ;
Howell, Jon ;
Kapritsos, Manos ;
Lorch, Jacob R. ;
Parno, Bryan ;
Roberts, Michael L. ;
Setty, Srinath ;
Zill, Brian .
SOSP'15: PROCEEDINGS OF THE TWENTY-FIFTH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES, 2015, :1-17
[8]   Actris: Session-Type Based Reasoning in Separation Logic [J].
Hinrichsen, Jonas Kastberg ;
Bengtson, Jesper ;
Krebbers, Robbert .
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4 (POPL)
[9]   The model checker SPIN [J].
Holzmann, GJ .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1997, 23 (05) :279-295
[10]  
Honda K, 1998, LECT NOTES COMPUT SC, V1381, P122, DOI 10.1007/BFb0053567