Verifying Concurrent Stacks by Divergence-Sensitive Bisimulation
Xiaoxiao Yang, Joost-Pieter Katoen, Hao Wu

TL;DR
This paper introduces a divergence-sensitive branching bisimulation approach for verifying linearizability and progress in concurrent objects, offering a more efficient alternative to trace refinement with practical validation on lock-free stacks.
Contribution
It proposes a polynomial-time divergence-sensitive branching bisimulation method for verifying linearizability and progress, improving efficiency over traditional trace refinement techniques.
Findings
Efficient verification of linearizability using bisimulation.
Validation on lock-free stacks demonstrates practical effectiveness.
Method handles progress properties like lock-freedom.
Abstract
The verification of linearizability -- a key correctness criterion for concurrent objects -- is based on trace refinement whose checking is PSPACE-complete. This paper suggests to use \emph{branching} bisimulation instead. Our approach is based on comparing an abstract specification in which object methods are executed atomically to a real object program. Exploiting divergence sensitivity, this also applies to progress properties such as lock-freedom. These results enable the use of \emph{polynomial-time} divergence-sensitive branching bisimulation checking techniques for verifying linearizability and progress. We conducted the experiment on concurrent lock-free stacks to validate the efficiency and effectiveness of our methods.
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 · Security and Verification in Computing · Radiation Effects in Electronics
