C4: verified transactional objects
Mohsen Lesani, Li-yao Xia, Anders Kaseorg, Christian J. Bell, Adam Chlipala, Benjamin C. Pierce, Steve Zdancewic
Abstract
Transactional objects combine the performance of classical concurrent objects with the high-level programmability of transactional memory. However, verifying the correctness of transactional objects is tricky, requiring reasoning simultaneously about classical concurrent objects, which guarantee the atomicity of individual methods—the property known as linearizability—and about software-transactional-memory libraries, which guarantee the atomicity of user-defined sequences of method calls—or serializability. We present a formal-verification framework called C4, built up from the familiar notion of linearizability and its compositional properties, that allows proof of both kinds of libraries, along with composition of theorems from both styles to prove correctness of applications or further libraries. We apply the framework in a significant case study, verifying a transactional set object built out of both classical and transactional components following the technique of transactional predication ; the proof is modular, reasoning separately about the transactional and nontransactional parts of the implementation. Central to our approach is the use of syntactic transformers on interaction trees —i.e., transactional libraries that transform client code to enforce particular synchronization disciplines. Our framework and case studies are mechanized in Coq.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 9174d9eb-5733-4f3a-88f5-933d76cc0e7cCited by top-tier papers5
- Choice Trees: Representing Nondeterministic, Recursive, and Impure Programs in CoqNicolas Chappe, Paul He, Ludovic Henrio, Yannick Zakowski et al.POPL 2023 · 21 citations
- Verifying vMVCC, a high-performance transaction library using multi-version concurrency controlYun-Sheng Chang, Ralf Jung, Upamanyu Sharma, Joseph Tassarotti et al.OSDI 2023 · 16 citations
- Modular Denotational Semantics for Effects with Guarded Interaction TreesDan Frumin, Amin Timany, Lars BirkedalPOPL 2024 · 13 citations
- A Compositional Theory of LinearizabilityArthur Oliveira Vale, Zhong Shao, Yixuan ChenPOPL 2023 · 7 citations
- Formally Verified Samplers from Probabilistic Programs with Loops and ConditioningAlexander Bagnall, Gordon Stewart, Anindya BanerjeePLDI 2023 · 5 citations
Builds on2
Related papers
- Automated Robustness Verification of Concurrent Data Structure Libraries against Relaxed Memory ModelsKartik Nagar, Anmol Sahoo, Romit Roy Chowdhury, Suresh JagannathanOOPSLA 2024 · 1 citation
- VerIso: Verifiable Isolation Guarantees for Database TransactionsShabnam Ghasemirad, Si Liu, Christoph Sprenger, Luca Multazzu et al.VLDB 2025 · 6 citations
- Compositionality and Observational Refinement for Linearizability with CrashesArthur Oliveira Vale, Zhongye Wang, Yixuan Chen, Peixin You et al.OOPSLA 2024 · 1 citation
- A Universal, Sound, and Complete Forward Reasoning Technique for Machine-Verified Proofs of LinearizabilityPrasad Jayanti, Siddhartha Jayanti, Ugur Y. Yavuz, Lizzie HernandezPOPL 2024 · 9 citations
- Implementing and verifying release-acquire transactional memory in C11Sadegh Dalvandi, Brijesh DongolOOPSLA 2022 · 6 citations
