TY - GEN
T1 - Proving linearizability using forward simulations
AU - Bouajjani, Ahmed
AU - Emmi, Michael
AU - Enea, Constantin
AU - Mutluergil, Suha Orhun
N1 - Publisher Copyright:
© Springer International Publishing AG 2017
PY - 2017/1/1
Y1 - 2017/1/1
N2 - 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.
AB - 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.
U2 - 10.1007/978-3-319-63390-9_28
DO - 10.1007/978-3-319-63390-9_28
M3 - Conference contribution
AN - SCOPUS:85026759575
SN - 9783319633893
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 542
EP - 563
BT - Computer Aided Verification - 29th International Conference, CAV 2017, Proceedings
A2 - Kuncak, Viktor
A2 - Majumdar, Rupak
PB - Springer Verlag
T2 - 29th International Conference on Computer Aided Verification, CAV 2017
Y2 - 24 July 2017 through 28 July 2017
ER -