2012
DOI: 10.1007/978-3-642-31424-7_21
|View full text |Cite
|
Sign up to set email alerts
|

How to Prove Algorithms Linearisable

Abstract: Linearisability is the standard correctness criterion for concurrent data structures. In this paper, we present a sound and complete proof technique for linearisability based on backward simulations. We exemplify this technique by a linearisability proof of the queue algorithm presented in Herlihy and Wing's landmark paper. Except for the manual proof by them, none of the many other current approaches to checking linearisability has successfully treated this intricate example. Our approach is grounded on compl… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
45
0

Year Published

2013
2013
2023
2023

Publication Types

Select...
7

Relationship

2
5

Authors

Journals

citations
Cited by 42 publications
(45 citation statements)
references
References 25 publications
0
45
0
Order By: Relevance
“…This work has applied state-based methods to program verification, and is part of a larger effort on the verification of linearizability on sequentially consistent architectures as well as weaker memory models. This larger effort mechanises the proofs of linearizability by integrating the state-based reasoning into the KIV theorem prover, see [6][7][8], and in [14] we prove (and mechanise the proof) that our approach is complete, in that all linearizable algorithms can be verified by such simulation-based methods. Given we are using the same simulation-based approach, mechanisation and integration into KIV of the theory in this paper will be relatively straightforward.…”
Section: Discussionmentioning
confidence: 93%
See 2 more Smart Citations
“…This work has applied state-based methods to program verification, and is part of a larger effort on the verification of linearizability on sequentially consistent architectures as well as weaker memory models. This larger effort mechanises the proofs of linearizability by integrating the state-based reasoning into the KIV theorem prover, see [6][7][8], and in [14] we prove (and mechanise the proof) that our approach is complete, in that all linearizable algorithms can be verified by such simulation-based methods. Given we are using the same simulation-based approach, mechanisation and integration into KIV of the theory in this paper will be relatively straightforward.…”
Section: Discussionmentioning
confidence: 93%
“…The original definition in [12] (for a formalisation, see [7]) is based on the concept of possibilities, however there are now a number of different proof strategies which have been applied to a number of algorithms. These range from using shape analysis [2,5] and separation logic [5] to rely-guarantee reasoning [18] and refinement-based simulation methods [10,14,7]. The simulation-based methods, which we will adapt for use in this paper, show that an abstraction (or simulation or refinement) relation exists between the abstract specification of the data structure and its concurrent implementation.…”
Section: Linearizability On Tsomentioning
confidence: 99%
See 1 more Smart Citation
“…A number of approaches to proving linearizability have been developed, and several algorithms have been shown to be linearizable [5,21,3,17,9,20]. The methodology used in these proofs varies, and ranges from shape analysis and separation logic to rely-guarantee reasoning and simulation-based methods.…”
Section: Introductionmentioning
confidence: 99%
“…The works in [13,15] present semi-automatic techniques, where human guidance is required either to interact with the theorem prover [15] or to carry out mathematical reasoning. The work presented in [5] defines a class of concurrent objects for which linearizability is decidable if the object is accessed by a bounded number of threads.…”
Section: Introductionmentioning
confidence: 99%