English

Verify Linearizability of Concurrent Stacks

Software Engineering 2025-09-16 v3

Abstract

Proving linearizability of concurrent data structures is crucial for ensuring their correctness, but is challenging especially for implementations that employ sophisticated synchronization techniques. In this paper, we propose a new proof technique for verifying linearizability of concurrent stacks. We first prove the soundness of the elimination mechanism, a common optimization used in concurrent stacks, which enables simplifying the linearizability proofs. We then present a stack theorem that reduces the problem of proving linearizability to establishing a set of conditions based on the happened-before order of operations. The key idea is to use an extended partial order to capture when a pop operation can observe the effect of a push operation. We apply our proof technique to verify two concurrent stack algorithms: the Treiber stack and the Time-Stamped stack, demonstrating its practicality. Our approach provides a systematic and compositional way to prove linearizability of concurrent stacks.

Keywords

Cite

@article{arxiv.2110.05801,
  title  = {Verify Linearizability of Concurrent Stacks},
  author = {Tangliu Wen},
  journal= {arXiv preprint arXiv:2110.05801},
  year   = {2025}
}
R2 v1 2026-06-24T06:49:00.966Z