Causal Linearizability: Compositionality for Partially Ordered Executions
Simon Doherty, John Derrick, Brijesh Dongol, Heike Wehrheim

TL;DR
This paper introduces causal linearizability, a new correctness condition for concurrent objects in weak-memory models, ensuring compositionality without requiring total order of events, and applies it to the C11 memory model.
Contribution
It defines causal linearizability using Lamport's execution structures, providing a compositional correctness condition for weak-memory models like C11.
Findings
Causal linearizability reduces to linearizability in total order cases.
A proof method for verifying C11 objects is developed.
The method does not require total ordering of events.
Abstract
In the interleaving model of concurrency, where events are totally ordered, linearizability is compositional: the composition of two linearizable objects is guaranteed to be linearizable. However, linearizability is not compositional when events are only partially ordered, as in many weak-memory models that describe multicore memory systems. In this paper, we present causal linearizability, a correctness condition for concurrent objects implemented in weak-memory models. We abstract from the details of specific memory models by defining our condition using Lamport's execution structures. We apply our condition to the C11 memory model, providing a correctness condition for C11 objects. We develop a proof method for verifying objects implemented in C11 and related models. Our method is an adaptation of simulation-based methods, but in contrast to other such methods, it does not require…
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 · Parallel Computing and Optimization Techniques · Formal Methods in Verification
