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
相关论文
共 50 条
  • [1] Diaframe: Automated Verification of Fine-Grained Concurrent Programs in Iris
    Mulder, Ike
    Krebbers, Robbert
    Geuvers, Herman
    [J]. PROCEEDINGS OF THE 43RD ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '22), 2022, : 809 - 824
  • [2] Mechanized Verification of a Fine-Grained Concurrent Queue from Meta's Folly Library
    Vindum, Simon Friis
    Frumin, Dan
    Birkedal, Lars
    [J]. PROCEEDINGS OF THE 11TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS (CPP '22), 2022, : 100 - 115
  • [3] Fine-grained concurrent completion
    Kirchner, C
    Lynch, C
    Scharff, C
    [J]. REWRITING TECHNIQUES AND APPLICATIONS, 1996, 1103 : 3 - 17
  • [4] Verification and refinement with fine-grained action-based concurrent objects
    Sekerinski, E
    [J]. THEORETICAL COMPUTER SCIENCE, 2005, 331 (2-3) : 429 - 455
  • [5] TaDA Live: Compositional Reasoning for Termination of Fine-grained Concurrent Programs
    D'Osualdo, Emanuele
    Sutherland, Julian
    Farzan, Azadeh
    Gardner, Philippa
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2021, 43 (04):
  • [6] Mechanized Relational Verification of Concurrent Programs with Continuations
    Timany, Amin
    Birkedal, Lars
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (ICFP):
  • [7] Fine-Grained Complexity of Safety Verification
    Chini, Peter
    Meyer, Roland
    Saivasan, Prakash
    [J]. JOURNAL OF AUTOMATED REASONING, 2020, 64 (07) : 1419 - 1444
  • [8] Fine-Grained Complexity of Safety Verification
    Chini, Peter
    Meyer, Roland
    Saivasan, Prakash
    [J]. TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, TACAS 2018, PT II, 2018, 10806 : 20 - 37
  • [9] Fine-Grained Complexity of Safety Verification
    Peter Chini
    Roland Meyer
    Prakash Saivasan
    [J]. Journal of Automated Reasoning, 2020, 64 : 1419 - 1444
  • [10] Fine-Grained Caching of Verification Results
    Leino, K. Rustan M.
    Wuestholz, Valentin
    [J]. COMPUTER AIDED VERIFICATION, PT I, 2015, 9206 : 380 - 397