Simplifying proofs of linearisability using layers of abstraction
Brijesh Dongol, John Derrick

TL;DR
This paper introduces a new method for verifying linearisability in concurrent data structures that avoids identifying linearisation points by using an interval-based logic to relate concrete behaviors to coarse-grained abstractions.
Contribution
It proposes an alternative verification approach that simplifies proofs of linearisability by eliminating the need to pinpoint linearisation points, applicable to complex algorithms like lazy set.
Findings
Verification without linearisation points is feasible using interval-based logic.
Applied to lazy set, the method confirms linearisability without analyzing internal linearisation points.
The approach simplifies correctness proofs for concurrent data structures.
Abstract
Linearisability has become the standard correctness criterion for concurrent data structures, ensuring that every history of invocations and responses of concurrent operations has a matching sequential history. Existing proofs of linearisability require one to identify so-called linearisation points within the operations under consideration, which are atomic statements whose execution causes the effect of an operation to be felt. However, identification of linearisation points is a non-trivial task, requiring a high degree of expertise. For sophisticated algorithms such as Heller et al's lazy set, it even is possible for an operation to be linearised by the concurrent execution of a statement outside the operation being verified. This paper proposes an alternative method for verifying linearisability that does not require identification of linearisation points. Instead, using an…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Parallel Computing and Optimization Techniques · Logic, programming, and type systems
