UCL Discovery
UCL home » Library Services » Electronic resources » UCL Discovery

Mechanized Verification of Fine-Grained Concurrent Programs

Sergey, I; Nanevski, A; Banerjee, A; (2015) Mechanized Verification of Fine-Grained Concurrent Programs. In: (Proceedings) 36th ACM SIGPLAN Conference on Programming Language Design and Implementation. (pp. pp. 77-87). ACM Green open access

[thumbnail of fcsl-pldi15.pdf]
Preview
Text
fcsl-pldi15.pdf - Accepted Version

Download (511kB) | Preview

Abstract

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 DSL 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, outline its infrastructure, and report on our experience of using FCSL to verify a number of concurrent algorithms and data structures.

Type: Proceedings paper
Title: Mechanized Verification of Fine-Grained Concurrent Programs
Event: 36th ACM SIGPLAN Conference on Programming Language Design and Implementation
Location: Portland, OR
Dates: 13 June 2015 - 17 June 2015
Open access status: An open access version is available from UCL Discovery
DOI: 10.1145/2737924.2737964
Publisher version: http://doi.org/10.1145/2737924.2737964
Additional information: This version is the author accepted manuscript. For information on re-use, please refer to the publisher’s terms and conditions.
Keywords: Compositional program verification, concurrency, separation logic, mechanized proofs, dependent types
UCL classification: UCL
UCL > Provost and Vice Provost Offices > UCL BEAMS
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science
URI: https://discovery.ucl.ac.uk/id/eprint/10030730
Downloads since deposit
291Downloads
Download activity - last month
Download activity - last 12 months
Downloads by country - last 12 months

Archive Staff Only

View Item View Item