English

Rely/Guarantee, Refinement and the ABA Problem: Part 1

Logic in Computer Science 2023-11-28 v1

Abstract

Rely/guarantee reasoning provides a compositional way of reasoning about concurrency. The ABA problem occurs in many non-blocking concurrent data structures, where a change made by a concurrent process may be undetected by other processes. Guarantee conditions provide a useful mechanism for reasoning about such changes, as is demonstrated by two non-blocking examples, the Treiber stack and the Herlihy-Wing queue. The ABA problem can be identified by the program making a step where the before and after states do not correspond to a valid step at the sequential level. Therefore, such invalid behaviour relates to a failure of the guarantee condition. As such behaviour is non-linearisable, this suggests a strong relationship between refinement with rely/guarantee and linearisability.

Keywords

Cite

@article{arxiv.2311.15250,
  title  = {Rely/Guarantee, Refinement and the ABA Problem: Part 1},
  author = {Nisansala P. Yatapanage},
  journal= {arXiv preprint arXiv:2311.15250},
  year   = {2023}
}
R2 v1 2026-06-28T13:31:42.588Z