The anchor verifier for blocking and non-blocking concurrent software
Cormac Flanagan, Stephen N. Freund
Abstract
Verifying the correctness of concurrent software with subtle synchronization is notoriously challenging. We present the Anchor verifier, which is based on a new formalism for specifying synchronization disciplines that describes both (1) what memory accesses are permitted, and (2) how each permitted access commutes with concurrent operations of other threads (to facilitate reduction proofs). Anchor supports the verification of both lock-based blocking and cas-based non-blocking algorithms. Experiments on a variety concurrent data structures and algorithms show that Anchor significantly reduces the burden of concurrent verification.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Cited by top-tier papers2
- Commutativity Simplifies Proofs of Parameterized ProgramsAzadeh Farzan, Dominik Klumpp, Andreas PodelskiPOPL 2024 · 11 citations
- Lilo: A Higher-Order, Relational Concurrent Separation Logic for LivenessDongjae Lee, Janggun Lee, Taeyoung Yoon, Minki Cho et al.OOPSLA 2025 · 3 citations
Related papers
- Sharding the State Machine: Automated Modular Reasoning for Complex Concurrent SystemsTravis Hance, Yi Zhou, Andrea Lattuada, Reto Achermann et al.OSDI 2023 · 18 citations
- On the Complexity of Checking Soundness of Natural ReductionsConstantin Enea, Azadeh Farzan, Dominik KlumppCAV 2026
- Veracity: declarative multicore programming with commutativityAdam Chen, Parisa Fathololumi, Eric Koskinen, Jared PincusOOPSLA 2022 · 2 citations
- The Ghosts of Empires: Extracting Modularity from Interleaving-Based ProofsFrank Schüssele, Matthias Zumkeller, Miriam Lagunes-Rochin, Dominik KlumppPOPL 2026
- Refinement for Structured Concurrent ProgramsBernhard Kragl, Shaz Qadeer, Thomas A. HenzingerCAV 2020 · 10 citations
