Abstract specifications for concurrent maps (extended version)
File(s)DTRS17-1.pdf (763.53 KB)
Published version
Author(s)
Xiong, S
da Rocha Pinto, P
Ntzik, G
Gardner, P
Type
Report
Abstract
Despite recent advances in reasoning about concurrent data structure libraries, the largest implementations in java.util.concurrent have yet to be verified. The key issue lies in the development of modular specifications, which provide clear logical boundaries between clients and implementations. A solution is to use recent advances in fine-grained concurrency reasoning, in particular the introduction of abstract atomicity to concurrent separation logic reasoning. We present two specifications of concurrent maps, both providing the clear boundaries we seek. We show that these specifications are equivalent, in that they can be built from each other. We show how we can verify client programs, such as a concurrent set and a producer-consumer client. We also give a substantial first proof that the main operations of ConcurrentSkipListMap in java.util.concurrent satisfy the map specification. This work demonstrates that we now have the technology to verify the largest implementations in java.util.concurrent.
Date Issued
2017-01-13
Citation
Departmental Technical Report: 17/1, 2017, pp.1-53
Publisher
Department of Computing, Imperial College London
Start Page
1
End Page
53
Journal / Book Title
Departmental Technical Report: 17/1
Copyright Statement
© 2017 The Author(s). This report is available open access under a CC-BY-NC-ND (https://creativecommons.org/licenses/by-nc-nd/4.0/)
Sponsor
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Identifier
https://www.doc.ic.ac.uk/research/technicalreports/2017/DTRS17-1.pdf
Grant Number
EP/K008528/1 - RG65358
EP/K008528/1
EP/H008373/1
EP/H008373/1
Publication Status
Published
Article Number
2017/1