🤖 AI Summary
Verifying linearizability of concurrent stacks is notoriously difficult due to complex interleavings and the challenge of reconciling partial-order executions with LIFO semantics.
Method: This paper proposes a decidable linearizability verification method grounded in the happened-before relation and explicit LIFO constraints. It reduces linearizability proofs to a set of intuitive, complete, and manually verifiable necessary and sufficient conditions—systematically simplifying verification via partial-order modeling, semantic abstraction, and sequence-level constraint reasoning.
Contribution/Results: The approach yields concise, reproducible proofs with significantly lowered engineering barriers compared to prior work. Experimentally, it successfully verifies linearizability for highly complex concurrent stacks—including TS, HSY, and FA—demonstrating both theoretical soundness and practical applicability. This establishes a new paradigm for formal verification of concurrent data structures that bridges rigorous semantics and scalable automation.
📝 Abstract
Linearizability is a commonly accepted correctness criterion for concurrent data structures. However, verifying linearizability of highly concurrent data structures is still a challenging task. In this paper, we present a simple and complete proof technique for verifying linearizability of concurrent stacks. Our proof technique reduces linearizability of concurrent stacks to establishing a set of conditions. These conditions are based on the happened-before order of operations, intuitively express the LIFO semantics and can be proved by simple arguments. Designers of concurrent data structures can easily and quickly learn to use the proof technique. We have successfully applied the method to several challenging concurrent stacks: the TS stack, the HSY stack, and the FA stack, etc.