Publication: Proving linearizability using forward simulations
Loading...
Program
KU-Authors
Organization Authors
Co-Authors
Bouajjani, Ahmed
Emmi, Michael
Enea, Constantin
Date
Language
Embargo Status
N/A
Journal Title
Journal ISSN
Volume Title
Alternative Title
Abstract
Linearizability is the standard correctness criterion for concurrent data structures such as stacks and queues. It allows to establish observational refinement between a concurrent implementation and an atomic reference implementation. Proving linearizability requires identifying linearization points for each method invocation along all possible computations, leading to valid sequential executions, or alternatively, establishing forward and backward simulations. In both cases, carrying out proofs is hard and complex in general. In particular, backward reasoning is difficult in the context of programs with data structures, and strategies for identifying statically linearization points cannot be defined for all existing implementations. In this paper, we show that, contrary to common belief, many such complex implementations, including, e.g., the Herlihy and Wing Queue and the Time-Stamped Stack, can be proved correct using only forward simulation arguments. This leads to simple and natural correctness proofs for these implementations that are amenable to automation.
Source
Publisher
Subject
Citation
item.page.haspartof
Source
Computer Aided Verification (Cav 2017), Pt Ii
item.page.ispartofseries
item.page.edition
DOI
10.1007/978-3-319-63390-9_28
item.page.datauri
item.page.link
Rights
N/A
Copyrights Note
Rights and licensing
N/A
