Pointer Life Cycle Types for Lock-Free Data Structures with Memory Reclamation
Roland Meyer, Sebastian Wolff

TL;DR
This paper introduces a lightweight type system for verifying lock-free data structures with manual memory management, enabling automatic correctness checks and simplifying the verification process.
Contribution
It presents a novel type system that verifies memory safety in lock-free data structures without shape tracking, using ghost variables and parameterized SMR algorithms.
Findings
Successfully verified various list and set implementations.
Achieved up to two orders of magnitude speed-up over existing methods.
First automatic verification of some literature examples.
Abstract
We consider the verification of lock-free data structures that manually manage their memory with the help of a safe memory reclamation (SMR) algorithm. Our first contribution is a type system that checks whether a program properly manages its memory. If the type check succeeds, it is safe to ignore the SMR algorithm and consider the program under garbage collection. Intuitively, our types track the protection of pointers as guaranteed by the SMR algorithm. There are two design decisions. The type system does not track any shape information, which makes it extremely lightweight. Instead, we rely on invariant annotations that postulate a protection by the SMR. To this end, we introduce angels, ghost variables with an angelic semantics. Moreover, the SMR algorithm is not hard-coded but a parameter of the type system definition. To achieve this, we rely on a recent specification language…
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.
