Abstract
The importance of exploiting commutativity relations in verification algorithms for concurrent programs is well-known. They can help simplify the proof and improve the time and space efficiency. This paper studies commutativity relations as a first-class object in the setting of verification algorithms for concurrent programs. A first contribution is a general framework for abstract commutativity relations. We introduce a general soundness condition for commutativity relations, and present a method to automatically derive sound abstract commutativity relations from a given proof. The method can be used in a verification algorithm based on abstraction refinement to compute a new commutativity relation in each iteration of the abstraction refinement loop. A second result is a general proof rule that allows one to combine multiple commutativity relations, with incomparable power, in a stratified way that preserves soundness and allows one to profit from the full power of the combined relations. We present an algorithm for the stratified proof rule that performs an optimal combination (in a sense made formal), enabling usage of stratified commutativity in algorithmic verification. We empirically evaluate the impact of abstract commutativity and stratified combination of commutativity relations on verification algorithms for concurrent programs.
Supplemental Material
Available for Download
This archive contains an extended version of the POPL'23 paper "Stratified Commutativity in Verification Algorithms for Concurrent Programs" with proofs.
- Parosh Aziz Abdulla, Stavros Aronis, Bengt Jonsson, and Konstantinos Sagonas. 2014. Optimal dynamic partial order reduction. In The 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’14, San Diego, CA, USA, January 20-21, 2014, Suresh Jagannathan and Peter Sewell (Eds.). ACM, 373–384. https://doi.org/10.1145/2535838.2535845
Google Scholar
Digital Library
- Dirk Beyer. 2022. Progress on Software Verification: SV-COMP 2022. In Tools and Algorithms for the Construction and Analysis of Systems - 28th International Conference, TACAS 2022, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022, Munich, Germany, April 2-7, 2022, Proceedings, Part II, Dana Fisman and Grigore Rosu (Eds.) (Lecture Notes in Computer Science, Vol. 13244). Springer, 375–402. https://doi.org/10.1007/978-3-030-99527-0_20
Google Scholar
Digital Library
- Dirk Beyer, Stefan Löwe, and Philipp Wendler. 2019. Reliable benchmarking: requirements and solutions. Int. J. Softw. Tools Technol. Transf., 21, 1 (2019), 1–29. https://doi.org/10.1007/s10009-017-0469-y
Google Scholar
Digital Library
- Franck Cassez and Frowin Ziegler. 2015. Verification of Concurrent Programs Using Trace Abstraction Refinement. In Logic for Programming, Artificial Intelligence, and Reasoning - 20th International Conference, LPAR-20 2015, Suva, Fiji, November 24-28, 2015, Proceedings, Martin Davis, Ansgar Fehnker, Annabelle McIver, and Andrei Voronkov (Eds.) (Lecture Notes in Computer Science, Vol. 9450). Springer, 233–248. https://doi.org/10.1007/978-3-662-48899-7_17
Google Scholar
Digital Library
- Duc-Hiep Chu and Joxan Jaffar. 2014. A Framework to Synergize Partial Order Reduction with State Interpolation. In Hardware and Software: Verification and Testing - 10th International Haifa Verification Conference, HVC 2014, Haifa, Israel, November 18-20, 2014. Proceedings, Eran Yahav (Ed.) (Lecture Notes in Computer Science, Vol. 8855). Springer, 171–187. https://doi.org/10.1007/978-3-319-13338-6_14
Google Scholar
Cross Ref
- Tayfun Elmas, Shaz Qadeer, and Serdar Tasiran. 2009. A calculus of atomic actions. In Proceedings of the 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2009, Savannah, GA, USA, January 21-23, 2009, Zhong Shao and Benjamin C. Pierce (Eds.). ACM, 2–15. https://doi.org/10.1145/1480881.1480885
Google Scholar
Digital Library
- Azadeh Farzan, Dominik Klumpp, and Andreas Podelski. 2022. Sound sequentialization for concurrent program verification. In PLDI ’22: 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, San Diego, CA, USA, June 13 - 17, 2022, Ranjit Jhala and Isil Dillig (Eds.). ACM, 506–521. https://doi.org/10.1145/3519939.3523727
Google Scholar
Digital Library
- Azadeh Farzan, Dominik Klumpp, and Andreas Podelski. 2023. Appendix to: Stratified Commutativity in Verification Algorithms for Concurrent Programs. Uploaded as supplementary material to this paper in the ACM Digital Library
Google Scholar
- Azadeh Farzan and Anthony Vandikas. 2019. Automated Hypersafety Verification. In Computer Aided Verification - 31st International Conference, CAV 2019, New York City, NY, USA, July 15-18, 2019, Proceedings, Part I, Isil Dillig and Serdar Tasiran (Eds.) (Lecture Notes in Computer Science, Vol. 11561). Springer, 200–218. https://doi.org/10.1007/978-3-030-25540-4_11
Google Scholar
Cross Ref
- Azadeh Farzan and Anthony Vandikas. 2020. Reductions for safety proofs. Proc. ACM Program. Lang., 4, POPL (2020), 13:1–13:28. https://doi.org/10.1145/3371081
Google Scholar
Digital Library
- Cormac Flanagan and Patrice Godefroid. 2005. Dynamic partial-order reduction for model checking software. In Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2005, Long Beach, California, USA, January 12-14, 2005, Jens Palsberg and Martín Abadi (Eds.). ACM, 110–121. https://doi.org/10.1145/1040305.1040315
Google Scholar
Digital Library
- Patrice Godefroid. 1996. Partial-Order Methods for the Verification of Concurrent Systems - An Approach to the State-Explosion Problem (Lecture Notes in Computer Science, Vol. 1032). Springer. isbn:3-540-60761-7 https://doi.org/10.1007/3-540-60761-7
Google Scholar
Cross Ref
- Vineet Kahlon, Chao Wang, and Aarti Gupta. 2009. Monotonic Partial Order Reduction: An Optimal Symbolic Partial Order Reduction Technique. In Computer Aided Verification, 21st International Conference, CAV 2009, Grenoble, France, June 26 - July 2, 2009. Proceedings, Ahmed Bouajjani and Oded Maler (Eds.) (Lecture Notes in Computer Science, Vol. 5643). Springer, 398–413. https://doi.org/10.1007/978-3-642-02658-4_31
Google Scholar
Digital Library
- Dominik Klumpp, Daniel Dietsch, Matthias Heizmann, Frank Schüssele, Marcel Ebbinghaus, Azadeh Farzan, and Andreas Podelski. 2022. Ultimate GemCutter and the Axes of Generalization - (Competition Contribution). In Tools and Algorithms for the Construction and Analysis of Systems - 28th International Conference, TACAS 2022, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022, Munich, Germany, April 2-7, 2022, Proceedings, Part II, Dana Fisman and Grigore Rosu (Eds.) (Lecture Notes in Computer Science, Vol. 13244). Springer, 479–483. https://doi.org/10.1007/978-3-030-99527-0_35
Google Scholar
Digital Library
- Eric Koskinen and Kshitij Bansal. 2021. Decomposing Data Structure Commutativity Proofs with $ mn$ -Differencing. In Verification, Model Checking, and Abstract Interpretation - 22nd International Conference, VMCAI 2021, Copenhagen, Denmark, January 17-19, 2021, Proceedings, Fritz Henglein, Sharon Shoham, and Yakir Vizel (Eds.) (Lecture Notes in Computer Science, Vol. 12597). Springer, 81–103. https://doi.org/10.1007/978-3-030-67067-2_5
Google Scholar
Digital Library
- Bernhard Kragl and Shaz Qadeer. 2018. Layered Concurrent Programs. In Computer Aided Verification - 30th International Conference, CAV 2018, Held as Part of the Federated Logic Conference, FloC 2018, Oxford, UK, July 14-17, 2018, Proceedings, Part I, Hana Chockler and Georg Weissenbacher (Eds.) (Lecture Notes in Computer Science, Vol. 10981). Springer, 79–102. https://doi.org/10.1007/978-3-319-96145-3_5
Google Scholar
Cross Ref
- Richard J. Lipton. 1975. Reduction: A Method of Proving Properties of Parallel Programs. Commun. ACM, 18, 12 (1975), 717–721. https://doi.org/10.1145/361227.361234
Google Scholar
Digital Library
- Edward Ochmanski. 1995. Recognizable Trace Languages. In The Book of Traces, Volker Diekert and Grzegorz Rozenberg (Eds.). World Scientific, 167–204. https://doi.org/10.1142/9789814261456_0006
Google Scholar
Cross Ref
- Björn Wachter, Daniel Kroening, and Joël Ouaknine. 2013. Verifying multi-threaded software with impact. In Formal Methods in Computer-Aided Design, FMCAD 2013, Portland, OR, USA, October 20-23, 2013. IEEE, 210–217. http://ieeexplore.ieee.org/document/6679412/
Google Scholar
Index Terms
Stratified Commutativity in Verification Algorithms for Concurrent Programs
Recommendations
The property of commutativity for some generalizations of BCK algebras
We consider thirty generalizations of BCK algebras (RM, RML, BCH, BCC, BZ, BCI algebras and many others). We investigate the property of commutativity for these algebras. We also give 10 examples of proper commutative finite algebras. Moreover, we ...
Commutativity of Pfaffianization and Bäcklund transformation: The semi-discrete Toda equation
We present a modified version of the semi-discrete Toda lattice, which also serves as a Backlund transformation for the semi-discrete Toda lattice, and we give N-soliton solution of this modified semi-discrete Toda equation in terms of Casorati ...
Efficient Verification of Sequential and Concurrent C Programs
There has been considerable progress in the domain of software verification over the last few years. This advancement has been driven, to a large extent, by the emergence of powerful yet automated abstraction techniques such as predicate abstraction. ...






Comments