Deductive Verification of Weak Memory Programs with View-based Protocols (extended version)
Pith reviewed 2026-05-09 22:28 UTC · model grok-4.3
The pith
We extend VerCors into VerCors-relaxed and encode the relaxed fragment of SLR to enable automated deductive verification of weak memory programs.
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
Core claim
The central claim is that an encoding of the relaxed fragment of the SLR program logic into VerCors-relaxed faithfully preserves the original logic's soundness and suffices to cover the behaviors of chosen examples, thereby allowing the VerCors tool to automatically verify weak memory programs that previously required manual proofs.
What carries the argument
VerCors-relaxed, the extension of VerCors that augments its atomic support with concepts from protocol automata to encode permission-based separation logics for weak memory concurrency.
Load-bearing premise
The encoding of the relaxed fragment of SLR into VerCors-relaxed must preserve soundness and be expressive enough for the chosen examples.
What would settle it
A literature example known to be correct under weak memory that the VerCors-relaxed encoding fails to verify automatically.
Figures
read the original abstract
Concurrent programming under weak memory concurrency faces substantial challenges to ensure correctness due to program behaviors that cannot be explained by thread interleaving, a.k.a. sequential consistency. While several program logics are proposed to reason about weak memory concurrency, their usage has been limited to intricate manual proofs. On the other hand, the VerCors verifier provides a rich toolset for automated deductive verification for sequential consistency. In this paper, we bridge this gap for automated deductive verification of weak memory concurrent programs with the VerCors deductive verification tool. We propose an approach to encode weak memory concurrency in VerCors. We develop VerCors-relaxed, where we extend the VerCors atomics support and bring concepts from several protocol automata to encode permission-based separation logics for weak memory concurrency models. To demonstrate the effectiveness of our approach, we encode the relaxed fragment of the SLR program logic, a recent state-of-the-art permission-based separation logic for weak memory concurrency in VerCors-relaxed, our extension of VerCors. We use the SLR encoding on VerCors-relaxed to automatically verify several examples from the literature within realistic performance.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The paper extends the VerCors deductive verifier to VerCors-relaxed, adding support for weak memory models via extended atomics and protocol automata concepts drawn from permission-based separation logics. It encodes the relaxed fragment of the SLR logic into this infrastructure and reports automated verification of several literature examples under realistic performance bounds.
Significance. If the encoding is faithful, the work meaningfully reduces the manual-proof burden for weak-memory programs by reusing VerCors infrastructure and SLR, enabling automated verification of realistic examples that were previously out of reach for deductive tools.
major comments (1)
- [Abstract] Abstract: the central claim that the SLR encoding 'faithfully' supports the chosen examples rests on an unshown soundness argument for the protocol-automata embedding; without an explicit statement of the preservation theorem or the restrictions imposed on the relaxed fragment, the verification results cannot be assessed for soundness.
minor comments (1)
- The abstract and title refer to both 'protocol automata' and 'view-based protocols' without clarifying whether these are synonymous or how views are represented in the encoding.
Simulated Author's Rebuttal
We thank the referee for the careful reading of our manuscript and the recommendation for minor revision. The comment raises a valid point about the need for greater explicitness regarding soundness, which we will address directly.
read point-by-point responses
-
Referee: [Abstract] Abstract: the central claim that the SLR encoding 'faithfully' supports the chosen examples rests on an unshown soundness argument for the protocol-automata embedding; without an explicit statement of the preservation theorem or the restrictions imposed on the relaxed fragment, the verification results cannot be assessed for soundness.
Authors: We agree that the presentation would benefit from greater explicitness. The manuscript encodes only the relaxed fragment of SLR and relies on the protocol-automata embedding to preserve the relevant properties of that fragment. To make this fully assessable, we will revise the abstract to qualify the claim and add an explicit statement of the preservation theorem (including the precise restrictions on the relaxed fragment) in the body of the paper, most likely as a short dedicated subsection or paragraph following the description of the encoding. This change clarifies the soundness argument without requiring new technical results. revision: yes
Circularity Check
No significant circularity in derivation chain
full rationale
The paper presents an encoding of the relaxed fragment of the SLR separation logic into an extended VerCors tool (VerCors-relaxed) and reports automated verification of literature examples. This is an implementation and demonstration effort that applies prior logics and infrastructure rather than deriving new results from fitted parameters or self-referential definitions. The central claim (successful verification via the encoding) is empirical and does not reduce by construction to its inputs; soundness preservation is stated as an assumption without being tautologically forced by the reported outcomes. No self-definitional steps, fitted-input predictions, or load-bearing self-citation chains appear in the described approach.
Axiom & Free-Parameter Ledger
axioms (1)
- domain assumption Permission-based separation logic axioms for weak memory views
Reference graph
Works this paper leans on
- [1]
- [2]
- [3]
-
[4]
Alglave, J., Maranget, L.: Stability in weak memory models. In: CAV. LNCS, vol. 6806, pp. 50–66. Springer (2011)
work page 2011
-
[5]
Alglave, J., Maranget, L., Sarkar, S., Sewell, P.: Fences in weak memory models. In: CAV. LNCS, vol. 6174, pp. 258–272. Springer (2010)
work page 2010
-
[6]
Amighi, A.: Specification and verification of synchronisation classes in Java: A practical approach. Ph.D. thesis, University of Twente (2018).https://doi.org/ 10.3990/1.9789036544399, chapter 5 - Verification of Synchronisers: Exclusive Access
-
[7]
In: Asian Symposium on Programming Languages and Systems
Amighi, A., Blom, S., Huisman, M.: Resource protection using atomics: Patterns and verification. In: Asian Symposium on Programming Languages and Systems. pp. 255–274. Springer (2014)
work page 2014
-
[8]
Armborst, L., Bos, P., van den Haak, L.B., Huisman, M., Rubbens, R., Şakar, Ö., Tasche, P.: The VerCors Verifier: A Progress Report. In: CAV. LNCS, vol. 14682, pp. 3–18. Springer (2024)
work page 2024
-
[9]
Atig, M.F., Bouajjani, A., Parlato, G.: Getting rid of store-buffers in TSO analysis. In: CAV. LNCS, vol. 6806, pp. 99–115. Springer (2011) 20 Ö. Şakar et al
work page 2011
-
[10]
In: de Boer, F., Bonsangue, M., Graf, S., de Roever, W
Berdine, J., Calcagno, C., O’Hearn, P.: Smallfoot: Modular Automatic Asser- tion Checking with Separation Logic. In: de Boer, F., Bonsangue, M., Graf, S., de Roever, W. (eds.) FMCO. LNCS, vol. 4111, pp. 115–137. Springer (2005)
work page 2005
-
[11]
Bornat, R., Calcagno, C., O’Hearn, P., Parkinson, M.: Permission accounting in separationlogic.In:Proceedingsofthe32ndACMSIGPLAN-SIGACTSymposium on Principles of programming languages. pp. 259–270 (2005).https://doi.org/ 10.1145/1040305.1040327
- [12]
-
[13]
Boyland, J.: Checking Interference with Fractional Permissions. In: Cousot, R. (ed.) SAS. LNCS, vol. 2694, pp. 55–72. Springer (2003).https://doi.org/10. 1007/3-540-44898-5_4
work page 2003
-
[14]
Burckhardt, S., Musuvathi, M.: Effective program verification for relaxed memory models. In: CAV. LNCS, vol. 5123, pp. 107–120. Springer (2008)
work page 2008
-
[15]
Chakraborty, S., Krishna, S., Pavlogiannis, A., Tuppe, O.: GPUMC: A Stateless Model Checker for GPU Weak Memory Concurrency. In: CAV. LNCS, vol. 15933, pp. 321–346. Springer (2025)
work page 2025
-
[16]
In: International Conference on Verification, Model Checking, and Abstract Interpretation
Doko, M., Vafeiadis, V.: A program logic for c11 memory fences. In: International Conference on Verification, Model Checking, and Abstract Interpretation. pp. 413–
-
[17]
Doko, M., Vafeiadis, V.: Tackling real-life relaxed concurrency with FSL++. In: Programming Languages and Systems: 26th European Symposium on Program- ming, ESOP 2017, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2017, Uppsala, Sweden, April 22–29, 2017, Proceed- ings 26. pp. 448–475. Springer (2017)
work page 2017
-
[18]
Fang, X., Lee, J., Midkiff, S.: Automatic fence insertion for shared memory multi- processing. In: ICS. pp. 285–294. ACM Press (2003)
work page 2003
-
[19]
IEEE Access8, 173874–173903 (2020).https://doi.org/10
He, M., Qin, S., Xu, Z.: A Program Logic for Reasoning About C11 Programs With Release-Sequences. IEEE Access8, 173874–173903 (2020).https://doi.org/10. 1109/ACCESS.2020.3024681
-
[20]
International Journal of Parallel Programming46(6), 1157–1183 (2018)
He, M., Vafeiadis, V., Qin, S., Ferreira, J.F.: GPS+: Reasoning about fences and relaxed atomics. International Journal of Parallel Programming46(6), 1157–1183 (2018)
work page 2018
- [21]
-
[22]
ACM SIGARCH Computer Architecture News36, 65–71 (2009)
Jonsson, B.: State-space exploration for concurrent algorithms under weak memory orderings. ACM SIGARCH Computer Architecture News36, 65–71 (2009)
work page 2009
-
[23]
ACM SIGPLAN Notices52(1), 175–189 (2017)
Kang, J., Hur, C.K., Lahav, O., Vafeiadis, V., Dreyer, D.: A promising semantics for relaxed-memory concurrency. ACM SIGPLAN Notices52(1), 175–189 (2017)
work page 2017
- [24]
-
[25]
ACM SIGPLAN Notices52(6), 618–632 (2017)
Lahav, O., Vafeiadis, V., Kang, J., Hur, C.K., Dreyer, D.: Repairing sequential consistency in c/c++ 11. ACM SIGPLAN Notices52(6), 618–632 (2017)
work page 2017
-
[26]
Lee, J., Padua, D.: Hiding relaxed memory consistency with a compiler. IEEE Trans. Comput.50, 824–833 (2001)
work page 2001
-
[27]
Lee, S.H., Cho, M., Podkopaev, A., Chakraborty, S., Hur, C.K., Lahav, O., Vafeiadis, V.: Promising 2.0: global optimizations in relaxed memory concurrency. In: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. pp. 362–376. PLDI 2020, Association for Comput- ing Machinery, New York, NY, USA (2020).https://doi...
- [28]
-
[29]
Margalit, R., Lahav, O.: Verifying observational robustness against a c11-style memory model. Proc. ACM Program. Lang.5(POPL) (Jan 2021).https://doi. org/10.1145/3434285, https://doi.org/10.1145/3434285
-
[30]
In: Jobstmann, B., Leino, K.R.M
Müller, P., Schwerhoff, M., Summers, A.: Viper - a verification infrastructure for permission-based reasoning. In: Jobstmann, B., Leino, K.R.M. (eds.) Verification, Model Checking, and Abstract Interpretation. VMCAI. Springer Berlin Heidelberg (2016). https://doi.org/10.1007/978-3-662-49122-5_2
-
[31]
de Putter, S., Wijs, A.: Lock and Fence When Needed: State Space Exploration + Static Analysis = Improved Fence and Lock Insertion. In: iFM. LNCS, vol. 12546, pp. 297–317. Springer (2020)
work page 2020
-
[32]
https://doi.org/10.4121/cd7ac73c-883e-4340-8425-35b4faa00146
Şakar, Ö., Chakraborty, S., Huisman, M., Wijs, A.: Artifact for the paper: De- ductive verification of weak memory programs with view-based protocols (2026). https://doi.org/10.4121/cd7ac73c-883e-4340-8425-35b4faa00146
work page doi:10.4121/cd7ac73c-883e-4340-8425-35b4faa00146 2026
-
[33]
International Journal on Software Tools for Technol- ogy Transfer22(6), 709–728 (2020)
Summers, A.J., Müller, P.: Automating deductive verification for weak-memory programs (extended version). International Journal on Software Tools for Technol- ogy Transfer22(6), 709–728 (2020)
work page 2020
- [34]
-
[35]
Svendsen, K., Pichon-Pharabod, J., Doko, M., Lahav, O., Vafeiadis, V.: A sep- aration logic for a promising semantics. In: Ahmed, A. (ed.) Programming Lan- guages and Systems - 27th European Symposium on Programming, ESOP 2018, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018, Thessaloniki, Greece, April 14-20,...
-
[36]
Turon, A., Vafeiadis, V., Dreyer, D.: GPS: navigating weak memory with ghosts, protocols, and separation. SIGPLAN Not. 49(10), 691–707 (Oct 2014). https://doi.org/10.1145/2714064.2660243, https://doi.org/10.1145/ 2714064.2660243
-
[37]
Electronic Notes in Theoretical Computer Science 276, 335–351 (2011)
Vafeiadis, V.: Concurrent separation logic and operational seman- tics. Electronic Notes in Theoretical Computer Science 276, 335–351 (2011). https://doi.org/https://doi.org/10.1016/j.entcs.2011.09.029, https://www.sciencedirect.com/science/article/pii/S1571066111001204, twenty-seventh Conference on the Mathematical Foundations of Programming Semantics (M...
-
[38]
Vafeiadis, V.: Program verification under weak memory consistency using separa- tion logic. In: Majumdar, R., Kunčak, V. (eds.) Computer Aided Verification. pp. 30–46. Springer International Publishing, Cham (2017)
work page 2017
-
[39]
Vafeiadis, V., Narayan, C.: Relaxed separation logic: A program logic for c11 con- currency. In: Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications. pp. 867–884 (2013) 22 Ö. Şakar et al. 1 a_V x = new a_V(N); 2 invariant inv( /*@ Global invariant 3 Perm(x.G[*], 1\2) ** 4 Perm(x.L[*]...
work page 2013
-
[40]
The call toload updates the local view
rmw fail: When the operation fails, the global view oft does not change (l.5). The call toload updates the local view. The return value ofload cannot be equivalent tooldVal (l.6). Finally, a description ofnewLV can be given (l.7). The predicatedescriptionFail is a placeholder and is to be defined by the user to use in further proofs. It can be used to exc...
-
[41]
In addition to this, a tokenCASSuccess is given to signify that the operation has succeeded (l.13)
rmw success: The newLV is specified to have changed similarly to thestore method’s contract. In addition to this, a tokenCASSuccess is given to signify that the operation has succeeded (l.13). This token captures the state that oldValisreadfrom.Thetokenisusedtoexcludemultipleoperationsreading from the same write. Again, a description ofnewLV can be given ...
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.