English

Verifying Concurrent Stacks by Divergence-Sensitive Bisimulation

Programming Languages 2024-01-03 v3

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.

Keywords

Cite

@article{arxiv.1701.06104,
  title  = {Verifying Concurrent Stacks by Divergence-Sensitive Bisimulation},
  author = {Xiaoxiao Yang and Joost-Pieter Katoen and Hao Wu},
  journal= {arXiv preprint arXiv:1701.06104},
  year   = {2024}
}
R2 v1 2026-06-22T17:56:14.203Z