Scenario-Based Proofs for Concurrent Objects [Extended Version]
Constantin Enea, Eric Koskinen

TL;DR
This paper introduces a novel proof technique for concurrent objects using scenario-based reasoning formalized as commutativity quotients, simplifying linearizability proofs and capturing diverse algorithm features.
Contribution
It presents a new method to formalize correctness proofs of concurrent objects through scenario-based quotients, enabling reasoning about unbounded interleavings.
Findings
Quotients effectively capture features of various concurrent algorithms.
The method aligns with original correctness arguments and aids in proofs without straightforward linearization points.
Discovery of quotients reduces to two-thread reasoning, facilitating automated analysis.
Abstract
Concurrent objects form the foundation of many applications that exploit multicore architectures and their importance has lead to informal correctness arguments, as well as formal proof systems. Correctness arguments (as found in the distributed computing literature) give intuitive descriptions of a few canonical executions or "scenarios" often each with only a few threads, yet it remains unknown as to whether these intuitive arguments have a formal grounding and extend to arbitrary interleavings over unboundedly many threads. We present a novel proof technique for concurrent objects, based around identifying a small set of scenarios (representative, canonical interleavings), formalized as the commutativity quotient of a concurrent object. We next give an expression language for defining abstractions of the quotient in the form of regular or context-free languages that enable simple…
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 · Logic, programming, and type systems · Formal Methods in Verification
