Abstract
The happens-before orders have been widely adopted to model thread interleaving behaviors of concurrent programs. A dedicated ordering theory solver, usually composed of theory propagation, consistency checking, and conflict clause generation, plays a central role in concurrent program verification. We propose a novel preventive reasoning approach that automatically preserves the ordering consistency and makes consistency checking and conflict clause generation omissible. We implement our approach in a prototype tool and conduct experiments on credible benchmarks; results reveal a significant improvement over existing state-of-the-art concurrent program verifiers.
- Parosh Abdulla, Stavros Aronis, Bengt Jonsson, and Konstantinos Sagonas. 2014. Optimal Dynamic Partial Order Reduction. SIGPLAN Not., 49, 1 (2014), Jan, 373–384. issn:0362-1340 https://doi.org/10.1145/2578855.2535845
Google Scholar
Digital Library
- Parosh Abdulla, Mohamed Faouzi Atig, Bengt Jonsson, Magnus Lång, Phong Ngo, and Konstantinos Sagonas. 2019. Optimal stateless model checking for reads-from equivalence under sequential consistency. Proceedings of the ACM on Programming Languages, 3 (2019), 10, 1–29. https://doi.org/10.1145/3360576
Google Scholar
Digital Library
- Parosh Aziz Abdulla, Stavros Aronis, Mohamed Faouzi Atig, Bengt Jonsson, Carl Leonardsson, and Konstantinos Sagonas. 2017. Stateless Model Checking for TSO and PSO. Acta Inf., 54, 8 (2017), Dec, 789–818. issn:0001-5903 https://doi.org/10.1007/s00236-016-0275-0
Google Scholar
Digital Library
- Pratyush Agarwal, Krishnendu Chatterjee, Shreya Pathak, Andreas Pavlogiannis, and Viktor Toman. 2021. Stateless Model Checking Under a Reads-Value-From Equivalence. In Computer Aided Verification: 33rd International Conference, CAV 2021, Virtual Event, July 20–23, 2021, Proceedings, Part I. Springer-Verlag, Berlin, Heidelberg. 341–366. isbn:978-3-030-81684-1 https://doi.org/10.1007/978-3-030-81685-8_16
Google Scholar
Digital Library
- Jade Alglave, Daniel Kroening, Vincent Nimal, and Daniel Poetzl. 2014. Don’t Sit on the Fence. In Computer Aided Verification, Armin Biere and Roderick Bloem (Eds.). Springer International Publishing, Cham. 508–524. isbn:978-3-319-08867-9 https://doi.org/10.1007/978-3-319-08867-9_33
Google Scholar
Digital Library
- Jade Alglave, Daniel Kroening, and Michael Tautschnig. 2013. Partial Orders for Efficient Bounded Model Checking Of Concurrent Software. In Proceedings of the 25th International Conference on Computer Aided Verification - Volume 8044 (CAV 2013). Springer-Verlag, Berlin, Heidelberg. 141–157. isbn:9783642397981 https://doi.org/10.1007/978-3-642-39799-8_9
Google Scholar
Cross Ref
- Jade Alglave, Luc Maranget, Susmit Sarkar, and Peter Sewell. 2012. Fences in Weak Memory Models (Extended Version). Form. Methods Syst. Des., 40, 2 (2012), Apr, 170–205. issn:0925-9856 https://doi.org/10.1007/s10703-011-0135-z
Google Scholar
Digital Library
- Clark Barrett and Cesare Tinelli. 2018. Satisfiability Modulo Theories. Springer International Publishing, Cham. 305–343. isbn:978-3-319-10575-8 https://doi.org/10.1007/978-3-319-10575-8_11
Google Scholar
Cross Ref
- Marek Chalupa, Krishnendu Chatterjee, Andreas Pavlogiannis, Nishant Sinha, and Kapil Vaidya. 2017. Data-Centric Dynamic Partial Order Reduction. Proc. ACM Program. Lang., 2, POPL (2017), Article 31, Dec, 30 pages. https://doi.org/10.1145/3158119
Google Scholar
Digital Library
- Edmund Clarke, Armin Biere, Richard Raimi, and Yunshan Zhu. 2001. Bounded Model Checking Using Satisfiability Solving. Form. Methods Syst. Des., 19, 1 (2001), July, 7–34. issn:0925-9856 https://doi.org/10.1023/A:1011276507260
Google Scholar
Digital Library
- Lucas Cordeiro and Bernd Fischer. 2011. Verifying Multi-Threaded Software Using Smt-Based Context-Bounded Model Checking. In Proceedings of the 33rd International Conference on Software Engineering (ICSE ’11). Association for Computing Machinery, New York, NY, USA. 331–340. isbn:9781450304450 https://doi.org/10.1145/1985793.1985839
Google Scholar
Digital Library
- Leonardo de Moura and Nikolaj Bjørner. 2008. Z3: an efficient SMT solver. Tools and Algorithms for the Construction and Analysis of Systems, 4963, 337–340. isbn:978-3-540-78799-0 https://doi.org/10.1007/978-3-540-78800-3_24
Google Scholar
Cross Ref
- Leonardo De Moura and Nikolaj Bjørner. 2011. Satisfiability modulo Theories: Introduction and Applications. Commun. ACM, 54, 9 (2011), Sept., 69–77. issn:0001-0782 https://doi.org/10.1145/1995376.1995394
Google Scholar
Digital Library
- Hongyu Fan, Weiting Liu, and Fei He. 2022. Interference Relation-Guided SMT Solving for Multi-Threaded Program Verification. In Proceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP ’22). Association for Computing Machinery, New York, NY, USA. 163–176. isbn:9781450392044 https://doi.org/10.1145/3503221.3508424
Google Scholar
Digital Library
- Patrice Godefroid. 1997. Model Checking for Programming Languages Using VeriSoft. In Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’97). Association for Computing Machinery, New York, NY, USA. 174–186. isbn:0897918533 https://doi.org/10.1145/263699.263717
Google Scholar
Digital Library
- Patrice Godefroid, Jan van Leeuwen, Juris Hartmanis, Gerhard Goos, and Pierre Wolper. 1996. Partial-order methods for the verification of concurrent systems: an approach to the state-explosion problem. 1032, Citeseer.
Google Scholar
- Henning Günther, Alfons Laarman, and Georg Weissenbacher. 2016. Vienna Verification Tool: IC3 for Parallel Software. In Proceedings of the 22nd International Conference on Tools and Algorithms for the Construction and Analysis of Systems - Volume 9636. Springer-Verlag, Berlin, Heidelberg. 954–957. isbn:9783662496732 https://doi.org/10.1007/978-3-662-49674-9_69
Google Scholar
Digital Library
- Ashutosh Gupta, Thomas A. Henzinger, Arjun Radhakrishna, Roopsha Samanta, and Thorsten Tarrach. 2015. Succinct Representation of Concurrent Trace Sets. In Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2015, Mumbai, India, January 15-17, 2015, Sriram K. Rajamani and David Walker (Eds.). ACM, 433–444. https://doi.org/10.1145/2676726.2677008
Google Scholar
Digital Library
- Fei He, Zhihang Sun, and Hongyu Fan. 2021. Satisfiability modulo Ordering Consistency Theory for Multi-Threaded Program Verification. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2021). Association for Computing Machinery, New York, NY, USA. 1264–1279. isbn:9781450383912 https://doi.org/10.1145/3453483.3454108
Google Scholar
Digital Library
- Jeff Huang. 2015. Stateless Model Checking Concurrent Programs with Maximal Causality Reduction. SIGPLAN Not., 50, 6 (2015), Jun, 165–174. issn:0362-1340 https://doi.org/10.1145/2813885.2737975
Google Scholar
Digital Library
- Omar Inverso, Truc L. Nguyen, Bernd Fischer, Salvatore La Torre, and Gennaro Parlato. 2015. Lazy-CSeq: A Context-Bounded Model Checking Tool for Multi-Threaded C-Programs. In Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering (ASE ’15). IEEE Press, 807–812. isbn:9781509000241 https://doi.org/10.1109/ASE.2015.108
Google Scholar
Digital Library
- Omar Inverso, Ermenegildo Tomasco, Bernd Fischer, Salvatore La Torre, and Gennaro Parlato. 2014. Bounded Model Checking of Multi-Threaded C Programs via Lazy Sequentialization. In Proceedings of the 16th International Conference on Computer Aided Verification - Volume 8559. Springer-Verlag, Berlin, Heidelberg. 585–602. isbn:9783319088662 https://doi.org/10.1007/978-3-319-08867-9_39
Google Scholar
Digital Library
- Ranjit Jhala, Andreas Podelski, and Andrey Rybalchenko. 2018. Predicate Abstraction for Program Verification. Springer International Publishing, Cham. 447–491. isbn:978-3-319-10575-8 https://doi.org/10.1007/978-3-319-10575-8_15
Google Scholar
Cross Ref
- Michalis Kokologiannakis, Ori Lahav, Konstantinos Sagonas, and Viktor Vafeiadis. 2017. Effective Stateless Model Checking for C/C++ Concurrency. Proc. ACM Program. Lang., 2, POPL (2017), Article 17, Dec, 32 pages. https://doi.org/10.1145/3158105
Google Scholar
Digital Library
- Michalis Kokologiannakis and Viktor Vafeiadis. 2021. GenMC: A Model Checker for Weak Memory Models. 427–440. isbn:978-3-030-81684-1 https://doi.org/10.1007/978-3-030-81685-8_20
Google Scholar
Digital Library
- Daniel Kroening and Michael Tautschnig. 2014. CBMC–C bounded model checker. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. 389–391. https://doi.org/10.1007/978-3-642-54862-8_26
Google Scholar
Cross Ref
- Leslie Lamport. 1979. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE transactions on computers, 28, 09 (1979), 690–691. https://doi.org/10.1109/TC.1979.1675439
Google Scholar
Digital Library
- Antoni Mazurkiewicz. 1986. Trace theory. In Advanced course on Petri nets. 278–324. https://doi.org/10.1007/3-540-17906-2_30
Google Scholar
Cross Ref
- Jonas Oberhauser, Rafael Chehab, Diogo Behrens, Ming Fu, Antonio Paolillo, Lilith Oberhauser, Koustubha Bhat, Yuzhong Wen, Haibo Chen, Jaeho Kim, and Viktor Vafeiadis. 2021. VSync: push-button verification and optimization for synchronization primitives on weak memory models. 530–545. https://doi.org/10.1145/3445814.3446748
Google Scholar
Digital Library
- Scott Owens, Susmit Sarkar, and Peter Sewell. 2009. A Better X86 Memory Model: X86-TSO. In Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs ’09). Springer-Verlag, Berlin, Heidelberg. 391–407. isbn:9783642033582 https://doi.org/10.1007/978-3-642-03359-9_27
Google Scholar
Digital Library
- Hernán Ponce-de León, Florian Furbach, Keijo Heljanko, and Roland Meyer. 2020. Dartagnan: Bounded Model Checking for Weak Memory Models (Competition Contribution). In Tools and Algorithms for the Construction and Analysis of Systems: 26th International Conference, TACAS 2020, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020, Dublin, Ireland, April 25–30, 2020, Proceedings, Part II. Springer-Verlag, Berlin, Heidelberg. 378–382. isbn:978-3-030-45236-0 https://doi.org/10.1007/978-3-030-45237-7_24
Google Scholar
Digital Library
- Nishant Sinha and Chao Wang. 2011. On Interference Abstractions. In Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’11). Association for Computing Machinery, New York, NY, USA. 423–434. isbn:9781450304900 https://doi.org/10.1145/1926385.1926433
Google Scholar
Digital Library
- Ermenegildo Tomasco, Truc L Nguyen, Omar Inverso, Bernd Fischer, Salvatore La Torre, and Gennaro Parlato. 2016. Lazy sequentialization for TSO and PSO via shared memory abstractions. In 2016 Formal Methods in Computer-Aided Design (FMCAD). 193–200. https://doi.org/10.1109/FMCAD.2016.7886679
Google Scholar
Cross Ref
- Chao Wang, Sudipta Kundu, Malay Ganai, and Aarti Gupta. 2009. Symbolic Predictive Analysis for Concurrent Programs. 5850, 256–272. isbn:978-3-642-05088-6 https://doi.org/10.1007/978-3-642-05089-3_17
Google Scholar
Digital Library
- D. Weaver and Tom Gremond. 1994. The SPARC architecture manual : version 9. Prentice-Hall.
Google Scholar
- Liangze Yin, Wei Dong, Wanwei Liu, Yunchou Li, and Ji Wang. 2018. YOGAR-CBMC: CBMC with Scheduling Constraint Based Abstraction Refinement. In Tools and Algorithms for the Construction and Analysis of Systems, Dirk Beyer and Marieke Huisman (Eds.). Springer International Publishing, Cham. 422–426. isbn:978-3-319-89963-3 https://doi.org/10.1007/978-3-319-89963-3_25
Google Scholar
Cross Ref
- Liangze Yin, Wei Dong, Wanwei Liu, and Ji Wang. 2017. Scheduling Constraint Based Abstraction Refinement for Multi-Threaded Program Verification. IEEE Transactions on Software Engineering, PP (2017), 08, https://doi.org/10.1109/TSE.2018.2864122
Google Scholar
Cross Ref
- Liangze Yin, Wei Dong, Wanwei Liu, and Ji Wang. 2018. Scheduling Constraint Based Abstraction Refinement for Weak Memory Models. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE 2018). Association for Computing Machinery, New York, NY, USA. 645–655. isbn:9781450359375 https://doi.org/10.1145/3238147.3238223
Google Scholar
Digital Library
- L. Yin, W. Dong, W. Liu, and J. Wang. 2020. On Scheduling Constraint Abstraction for Multi-Threaded Program Verification. IEEE Transactions on Software Engineering, 46, 5 (2020), may, 549–565. issn:1939-3520 https://doi.org/10.1109/TSE.2018.2864122
Google Scholar
Cross Ref
Index Terms
Consistency-preserving propagation for SMT solving of concurrent program verification
Recommendations
Interference relation-guided SMT solving for multi-threaded program verification
PPoPP '22: Proceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingConcurrent program verification is challenging due to a large number of thread interferences. A popular approach is to encode concurrent programs as SMT formulas and then rely on off-the-shelf SMT solvers to accomplish the verification. In most existing ...
Satisfiability modulo ordering consistency theory for multi-threaded program verification
PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and ImplementationAnalyzing multi-threaded programs is hard due to the number of thread interleavings. Partial orders can be used for modeling and analyzing multi-threaded programs. However, there is no dedicated decision procedure for solving partial-order constraints. ...
SIRe: an efficient snapshot isolation-based memory model for detecting and tolerating region conflicts
SPLASH Companion 2015: Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for HumanityA strong memory model, such as region serializability, helps programmers reason about programs in the granularity of synchronization free regions and allows compiler and hardware to more freely reorder accesses. However, providing region ...






Comments