skip to main content
research-article
Open Access

Consistency-preserving propagation for SMT solving of concurrent program verification

Published:31 October 2022Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarCross RefCross Ref
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarCross RefCross Ref
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarCross RefCross Ref
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarCross RefCross Ref
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarCross RefCross Ref
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. Antoni Mazurkiewicz. 1986. Trace theory. In Advanced course on Petri nets. 278–324. https://doi.org/10.1007/3-540-17906-2_30 Google ScholarGoogle ScholarCross RefCross Ref
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarCross RefCross Ref
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. D. Weaver and Tom Gremond. 1994. The SPARC architecture manual : version 9. Prentice-Hall. Google ScholarGoogle Scholar
  36. 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 ScholarGoogle ScholarCross RefCross Ref
  37. 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 ScholarGoogle ScholarCross RefCross Ref
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. 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 ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Consistency-preserving propagation for SMT solving of concurrent program verification

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Article Metrics

        • Downloads (Last 12 months)163
        • Downloads (Last 6 weeks)15

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!