A Generic Logic for Proving Linearizability (Extended Version)
Artem Khyzha, Alexey Gotsman, Matthew Parkinson

TL;DR
This paper introduces a flexible, generic logic framework for proving linearizability in concurrent algorithms, capable of integrating various reasoning techniques like separation logic and rely-guarantee, and handling complex features such as helping.
Contribution
It presents a novel, generic logic for linearizability proofs that can be instantiated with different concurrency reasoning methods, extending the Views framework.
Findings
Successfully instantiated the logic with separation logic and rely-guarantee.
Able to handle concurrent algorithms with helping features.
Demonstrated the logic's power on challenging concurrent algorithms.
Abstract
Linearizability is a commonly accepted notion of correctness for libraries of concurrent algorithms, and recent years have seen a number of proposals of program logics for proving it. Although these logics differ in technical details, they embody similar reasoning principles. To explicate these principles, we propose a logic for proving linearizability that is generic: it can be instantiated with different means of compositional reasoning about concurrency, such as separation logic or rely-guarantee. To this end, we generalise the Views framework for reasoning about concurrency to handle relations between programs, required for proving linearizability. We present sample instantiations of our generic logic and show that it is powerful enough to handle concurrent algorithms with challenging features, such as helping.
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 · Formal Methods in Verification · Logic, programming, and type systems
