Mechanized Verification of Fine-Grained Concurrent Programs

被引:1
作者
Sergey, Ilya [1 ]
Nanevski, Aleksandar [1 ]
Banerjee, Anindya [1 ]
机构
[1] IMDEA Software Inst, Madrid, Spain
基金
美国国家科学基金会;
关键词
Algorithms; Theory; Verification; Compositional program verification; concurrency separation logic; mechanized proofs; dependent types; SEPARATION LOGIC; LINEARIZABILITY; STATE;
D O I
10.1145/2813885.2737964
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Efficient concurrent programs and data structures rarely employ coarse-grained synchronization mechanisms (i.e., locks); instead, they implement custom synchronization patterns via fine-grained primitives, such as compare-and-swap. Due to sophisticated interference scenarios between threads, reasoning about such programs is challenging and error-prone, and can benefit from mechanization. In this paper, we present the first completely formalized framework for mechanized verification of full functional correctness of fine-grained concurrent programs. Our tool is based on the recently proposed program logic FCSL. It is implemented as an embedded domain-specific language in the dependently-typed language of the Coq proof assistant, and is powerful enough to reason about programming features such as higher-order functions and local thread spawning. By incorporating a uniform concurrency model, based on state-transition systems and partial commutative monoids, FCSL makes it possible to build proofs about concurrent libraries in a thread-local, compositional way, thus facilitating scalability and reuse: libraries are verified just once, and their specifications are used ubiquitously in client-side reasoning. We illustrate the proof layout in FCSL by example, and report on our experience of using FCSL to verify a number of concurrent programs.
引用
收藏
页码:77 / 87
页数:11
相关论文
共 56 条
[1]  
[Anonymous], 2014, COQ PROOF ASS REF MA
[2]  
Appel A.W., 2014, PROGRAM LOGICS CERTI
[3]  
Bertot Y., 2004, TEXT THEORET COMP S
[4]   Permission accounting in separation logic [J].
Bornat, R ;
Calcagno, C ;
O'Hearn, P ;
Parkinson, M .
ACM SIGPLAN NOTICES, 2005, 40 (01) :259-270
[5]  
Brookes S., 2007, TH COMP SCI, V375
[6]  
Calcagno C, 2007, LECT NOTES COMPUT SC, V4634, P233
[7]   Mostly-Automated Verification of Low-Level Programs in Computational Separation Logic [J].
Chlipala, Adam .
ACM SIGPLAN NOTICES, 2011, 46 (06) :234-245
[8]  
Chlipala Adam., 2017, Certified Programming with Dependent Types
[9]  
Cohen E, 2013, LECT NOTES COMPUT SC, V7741, P1
[10]  
Cohen E, 2009, LECT NOTES COMPUT SC, V5674, P23, DOI 10.1007/978-3-642-03359-9_2