Scenario-Based Proofs for Concurrent Objects
Constantin Enea, Eric Koskinen
摘要
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 proofs of linearizability. These quotient expressions organize unbounded interleavings into a form more amenable to reasoning and make explicit the relationship between implementation-level contention/interference and ADT-level transitions.
We evaluate our work on numerous non-trivial concurrent objects from the literature (including the Michael-Scott queue, Elimination stack, SLS reservation queue, RDCSS and Herlihy-Wing queue). We show that quotients capture the diverse features/complexities of these algorithms, can be used even when linearization points are not straight-forward, correspond to original authors' correctness arguments, and provide some new scenario-based arguments. Finally, we show that discovery of some object's quotients reduces to two-thread reasoning and give an implementation that can derive candidate quotients expressions from source code.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
它引用的顶会 Paper3
- The future is ours: prophecy variables in separation logicRalf Jung, Rodolphe Lepigre, Gaurav Parthasarathy, Marianna Rapoport 等POPL 2020 · 被引用 62 次
- Inductive sequentialization of asynchronous programsBernhard Kragl, Constantin Enea, Thomas A. Henzinger, Suha Orhun Mutluergil 等PLDI 2020 · 被引用 26 次
- Proving highly-concurrent traversals correctYotam M. Y. Feldman, Artem Khyzha, Constantin Enea, Adam Morrison 等OOPSLA 2020 · 被引用 12 次
相关 Paper
- A Proof Recipe for Linearizability in Relaxed Memory Separation LogicSunho Park, Jaewoo Kim, Ike Mulder, Jaehwang Jung 等PLDI 2024 · 被引用 4 次
- A Universal, Sound, and Complete Forward Reasoning Technique for Machine-Verified Proofs of LinearizabilityPrasad Jayanti, Siddhartha Jayanti, Ugur Y. Yavuz, Lizzie HernandezPOPL 2024 · 被引用 9 次
- Counterexample-Guided CommutativityMarcel Ebbinghaus, Dominik Klumpp, Andreas PodelskiCAV 2025
- Sound sequentialization for concurrent program verificationAzadeh Farzan, Dominik Klumpp, Andreas PodelskiPLDI 2022 · 被引用 24 次
- Stratified Commutativity in Verification Algorithms for Concurrent ProgramsAzadeh Farzan, Dominik Klumpp, Andreas PodelskiPOPL 2023 · 被引用 11 次
