# Proving Linearizability Using Partial Orders (Extended Version)

**Authors:** Artem Khyzha, Mike Dodds, Alexey Gotsman, Matthew Parkinson

arXiv: 1701.05463 · 2017-07-07

## TL;DR

This paper introduces a novel proof method for linearizability of concurrent data structures, constructing partial orders to handle future-dependent linearizations, validated on several complex examples.

## Contribution

It presents a new proof technique using partial orders and rely-guarantee reasoning to verify linearizability of challenging concurrent data structures.

## Key findings

- Successfully verified Herlihy-Wing queue
- Verified TS queue and Optimistic set
- Method handles future-dependent linearizations

## Abstract

Linearizability is the commonly accepted notion of correctness for concurrent data structures. It requires that any execution of the data structure is justified by a linearization --- a linear order on operations satisfying the data structure's sequential specification. Proving linearizability is often challenging because an operation's position in the linearization order may depend on future operations. This makes it very difficult to incrementally construct the linearization in a proof.   We propose a new proof method that can handle data structures with such future-dependent linearizations. Our key idea is to incrementally construct not a single linear order of operations, but a partial order that describes multiple linearizations satisfying the sequential specification. This allows decisions about the ordering of operations to be delayed, mirroring the behaviour of data structure implementations. We formalise our method as a program logic based on rely-guarantee reasoning, and demonstrate its effectiveness by verifying several challenging data structures: the Herlihy-Wing queue, the TS queue and the Optimistic set.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1701.05463/full.md

## Figures

89 figures with captions in the complete paper: https://tomesphere.com/paper/1701.05463/full.md

## References

22 references — full list in the complete paper: https://tomesphere.com/paper/1701.05463/full.md

---
Source: https://tomesphere.com/paper/1701.05463