skip to main content
10.1145/3551349.3561159acmotherconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

Prioritized Constraint-Aided Dynamic Partial-Order Reduction

Published: 05 January 2023 Publication History

Abstract

Thread alternation aggravates the difficulty of concurrent program verification since the number of traces to be explored grows rapidly as the scale of a concurrent program increases. Partial-Order Reduction (POR) techniques alleviate the trace-space explosion problem by partitioning the traces into different equivalent classes. However, due to the coarse dependency approximation of transitions, there are still a large number of redundant traces explored throughout the verification. In this paper, a symbolic approach, namely Prioritized Constraint-Aided Dynamic Partial-Order Reduction (PC-DPOR), is proposed to reduce the redundant traces. Specifically, a constrained dependency graph is presented to refine dependencies between transitions, and the exploration of isolated transitions in the graph is prioritized to reduce redundant equivalent traces. Further, we utilize the generated constraints to dynamically detect whether the enabled transitions at the given reachable states are dependent, and thereby to overcome the inherent imprecision of the traditional dependence over-approximation. We have implemented the proposed approach as an extension of CPAchecker by utilizing BDDs as the representation of state sets. Experimental results show that our approach can effectively reduce the time and memory consumption for verifying concurrent programs. In particular, the number of explored states is reduced to 8.62% on average.

References

[1]
Parosh Abdulla, Stavros Aronis, Bengt Jonsson, and Konstantinos Sagonas. 2014. Optimal Dynamic Partial Order Reduction. In Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (San Diego, California, USA) (POPL ’14). Association for Computing Machinery, New York, NY, USA, 373–384. https://doi.org/10.1145/2535838.2535845
[2]
Elvira Albert, Puri Arenas, Maria Garcia de la Banda, Miguel Gómez-Zamalloa, and Peter Stuckey. 2017. Context-Sensitive Dynamic Partial Order Reduction. Springer, 526–543. https://doi.org/10.1007/978-3-319-63387-9_26
[3]
Yves Bertot and Pierre Casteran. 2004. Interactive Theorem Proving and Program Development. SpringerVerlag. https://doi.org/10.1007/978-3-662-07964-5
[4]
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, Vol. 13244. Springer Nature, 375. https://doi.org/10.1007/978-3-030-99527-0_20
[5]
Dirk Beyer and M. Erkan Keremoglu. 2011. CPACHECKER: A Tool for Configurable Software Verification. In Proceedings of the 23rd International Conference on Computer Aided Verification (Snowbird, UT) (CAV’11). Springer-Verlag, Berlin, Heidelberg, 184–190. https://doi.org/10.1007/978-3-642-22110-1_16
[6]
Armin Biere, Alessandro Cimatti, Edmund Clarke, Ofer Strichman, and Yunshan Zhu. 2003. Bounded Model Checking. Advances in Computers 58 (Dec. 2003), 117 – 148. https://doi.org/10.1016/s0065-2458(03)58003-2
[7]
Randal E. Bryant. 1986. Graph-Based Algorithms for Boolean Function Manipulation. IEEE Trans. Comput. 35, 8 (Aug. 1986), 677–691. https://doi.org/10.1109/TC.1986.1676819
[8]
J. R. Burch, E. M. Clarke, K. L. McMillan, D. L. Dill, and L. J. Hwang. 1992. Symbolic Model Checking: 1020 States and Beyond. Inf. Comput. 98, 2 (June 1992), 142–170. https://doi.org/10.1016/0890-5401(92)90017-A
[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, Article 31 (Dec. 2017), 30 pages. https://doi.org/10.1145/3158119
[10]
K. Mani Chandy, Jayadev Misra, and Laura M. Haas. 1983. Distributed Deadlock Detection. ACM Trans. Comput. Syst. 1, 2 (May 1983), 144–156. https://doi.org/10.1145/357360.357365
[11]
Edmund Clarke, Armin Biere, Richard Raimi, and Yunshan Zhu. 2001. Bounded Model Checking Using Satisfiability Solving. Form. Methods Syst. Des. 19, 1 (July 2001), 7–34. https://doi.org/10.1023/A:1011276507260
[12]
Edmund Clarke, Orna Grumberg, Somesh Jha, Yuan Lu, and Helmut Veith. 2003. Counterexample-Guided Abstraction Refinement for Symbolic Model Checking. J. ACM 50, 5 (Sept. 2003), 752–794. https://doi.org/10.1145/876638.876643
[13]
E.M. Clarke, Orna Grumberg, M. Minea, and Doron Peled. 1999. State space reduction using partial order reduction. International Journal on Software Tools for Technology Transfer 2, 3 (Jan. 1999), 279–287. https://doi.org/10.1007/s100090050035
[14]
Edmund M. Clarke, Thomas A. Henzinger, Helmut Veith, and Roderick Bloem. 2018. Handbook of Model Checking(1st ed.). Springer Publishing Company, Incorporated. https://doi.org/10.1007/978-3-319-10575-8
[15]
Edmund M. Clarke, Kenneth L. McMillan, Sérgio Vale Aguiar Campos, and Vassili Hartonas-Garmhausen. 1996. Symbolic Model Checking. In Proceedings of the 8th International Conference on Computer Aided Verification(CAV ’96). Springer-Verlag, Berlin, Heidelberg, 419–427. https://doi.org/10.1007/3-540-61474-5_93
[16]
Alex Coto, Omar Inverso, Emerson Sales, and Emilio Tuosto. 2022. A Prototype for Data Race Detection in CSeq 3. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 413–417. https://doi.org/10.1007/978-3-030-99527-0_23
[17]
Daniel Dietsch, Matthias Heizmann, Alexander Nutz, Claus Schätzle, and Frank Schüssele. 2020. Ultimate taipan with symbolic interpretation and fluid abstractions. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 418–422. https://doi.org/10.1007/978-3-030-45237-7_32
[18]
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 (Long Beach, California, USA) (POPL’05). Association for Computing Machinery, New York, NY, USA, 110–121. https://doi.org/10.1145/1040305.1040315
[19]
Patrice Godefroid, Nils Klarlund, and Koushik Sen. 2005. DART: Directed Automated Random Testing. In Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation (Chicago, IL, USA) (PLDI ’05). Association for Computing Machinery, New York, NY, USA, 213–223. https://doi.org/10.1145/1065010.1065036
[20]
Patrice Godefroid, J. van Leeuwen, J. Hartmanis, G. Goos, and Pierre Wolper. 1996. Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. Springer-Verlag, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60761-7
[21]
Patrice Godefroid and Didier Pirottin. 1993. Refining Dependencies Improves Partial-Order Verification Methods (Extended Abstract). In Proceedings of the 5th International Conference on Computer Aided Verification(CAV ’93). Springer-Verlag, Berlin, Heidelberg, 438–449. https://doi.org/10.1007/3-540-56922-7_36
[22]
Fei He, Zhihang Sun, and Hongyu Fan. 2022. Deagle: An SMT-based verifier for multi-threaded programs (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. 424–428. https://doi.org/10.1007/978-3-030-99527-0_25
[23]
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 (Lincoln, Nebraska) (ASE’15). IEEE Press, 807–812. https://doi.org/10.1109/ASE.2015.108
[24]
Jonathan Jacky, Margus Veanes, Colin Campbell, and Wolfram Schulte. 2007. Model-Based Software Testing and Analysis with C# (1 ed.). Cambridge University Press. https://doi.org/10.1017/CBO9780511619540
[25]
Vineet Kahlon, Chao Wang, and Aarti Gupta. 2009. Monotonic Partial Order Reduction: An Optimal Symbolic Partial Order Reduction Technique. In Proceedings of the 21st International Conference on Computer Aided Verification (Grenoble, France) (CAV ’09). Springer-Verlag, Berlin, Heidelberg, 398–413. https://doi.org/10.1007/978-3-642-02658-4_31
[26]
Baris Kasikci, Cristian Zamfir, and George Candea. 2012. Data Races vs. Data Race Bugs: Telling the Difference with Portend. In Proceedings of the Seventeenth International Conference on Architectural Support for Programming Languages and Operating Systems (London, England, UK) (ASPLOS XVII). Association for Computing Machinery, New York, NY, USA, 185–198. https://doi.org/10.1145/2150976.2150997
[27]
Dominik Klumpp, Daniel Dietsch, Matthias Heizmann, Frank Schüssele, Marcel Ebbinghaus, Azadeh Farzan, and Andreas Podelski. 2022. ULTIMATE GEMCUTTER and the Axes of Generalization. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 479–483. https://doi.org/10.1007/978-3-030-99527-0_35
[28]
A Mazurkiewicz. 1987. Trace Theory. In Advances in Petri Nets 1986, Part II on Petri Nets: Applications and Relationships to Other Models of Concurrency (Bad Honnef). Springer-Verlag, Berlin, Heidelberg, 279–324. https://doi.org/10.1007/3-540-17906-2_30
[29]
Kenneth L. McMillan. 2003. Interpolation and SAT-Based Model Checking. In Computer Aided Verification (Boulder, CO, USA) (CAV’03). Springer-Verlag, Berlin, Heidelberg, 1–13. https://doi.org/10.1007/978-3-540-45069-6_1
[30]
Stephan Merz. 2000. Model Checking: A Tutorial Overview. In Proceedings of the 4th Summer School on Modeling and Verification of Parallel Processes (Nantes, France) (MOVEP ’00). Springer-Verlag, Berlin, Heidelberg, 3–38. https://doi.org/10.1007/3-540-45510-8_1
[31]
Huyen TT Nguyen, César Rodríguez, Marcelo Sousa, Camille Coti, and Laure Petrucci. 2018. Quasi-optimal partial order reduction. In International Conference on Computer Aided Verification. Springer, 354–371. https://doi.org/10.1007/s10703-020-00350-4
[32]
Mogens Nielsen, Gordon Plotkin, and Glynn Winskel. 2006. Petri nets, event structures and domains. Vol. 70. 266–284. https://doi.org/10.1007/BFb0022474
[33]
Tobias Nipkow, Markus Wenzel, and Lawrence C. Paulson. 2002. Isabelle/HOL: A Proof Assistant for Higher-Order Logic. Springer-Verlag, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45949-9
[34]
Doron Peled. 1993. All from One, One for All: On Model Checking Using Representatives. In Proceedings of the 5th International Conference on Computer Aided Verification(CAV ’93). Springer-Verlag, Berlin, Heidelberg, 409–423. https://doi.org/10.1007/3-540-56922-7_34
[35]
Shaz Qadeer and Jakob Rehof. 2005. Context-Bounded Model Checking of Concurrent Software. In Proceedings of the 11th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (Edinburgh, UK) (TACAS’05). Springer-Verlag, Berlin, Heidelberg, 93–107. https://doi.org/10.1007/978-3-540-31980-1_7
[36]
Jie Su, Cong Tian, and Zhenhua Duan. 2021. Conditional Interpolation: Making Concurrent Program Verification More Effective. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Athens, Greece) (ESEC/FSE’21). Association for Computing Machinery, New York, NY, USA, 144–154. https://doi.org/10.1145/3468264.3468602
[37]
Cong Tian, Zhenhua Duan, and Zhao Duan. 2014. Making CEGAR More Efficient in Software Model Checking. IEEE Transactions on Software Engineering 40, 12 (2014), 1206–1223. https://doi.org/10.1109/TSE.2014.2357442
[38]
Cong Tian, Zhao Duan, Zhenhua Duan, and C.-H. Luke Ong. 2017. More Effective Interpolations in Software Model Checking. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering(Urbana-Champaign, IL, USA) (ASE’17). IEEE Press, 183–193. https://doi.org/10.1109/ase.2017.8115631
[39]
Ermenegildo Tomasco, Omar Inverso, Bernd Fischer, Salvatore La Torre, and Gennaro Parlato. 2014. MU-CSeq: Sequentialization of C Programs by Shared Memory Unwindings. In Tools and Algorithms for the Construction and Analysis of Systems (Grenoble, France) (TACAS’14). Springer-Verlag, Berlin, Heidelberg, 402–404. https://doi.org/10.1007/978-3-642-54862-8_30
[40]
Chao Wang, Zijiang Yang, Vineet Kahlon, and Aarti Gupta. 2008. Peephole Partial Order Reduction. In Proceedings of the Theory and Practice of Software, 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (Budapest, Hungary) (TACAS’08/ETAPS’08). Springer-Verlag, Berlin, Heidelberg, 382–396. https://doi.org/10.1007/978-3-540-78800-3_29
[41]
Liangze Yin, Wei Dong, Wanwei Liu, and Ji Wang. 2020. On Scheduling Constraint Abstraction for Multi-Threaded Program Verification. IEEE Transactions on Software Engineering 46, 5 (2020), 549–565. https://doi.org/10.1109/TSE.2018.2864122

Cited By

View all
  • (2024)CFStra: Enhancing Configurable Program Analysis Through LLM-Driven Strategy Selection Based on Code FeaturesTheoretical Aspects of Software Engineering10.1007/978-3-031-64626-3_22(374-391)Online publication date: 14-Jul-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ASE '22: Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering
October 2022
2006 pages
ISBN:9781450394758
DOI:10.1145/3551349
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 January 2023

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Software model checking
  2. concurrent program verification
  3. dynamic partial-order reduction.
  4. symbolic model checking

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

Conference

ASE '22

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)28
  • Downloads (Last 6 weeks)1
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)CFStra: Enhancing Configurable Program Analysis Through LLM-Driven Strategy Selection Based on Code FeaturesTheoretical Aspects of Software Engineering10.1007/978-3-031-64626-3_22(374-391)Online publication date: 14-Jul-2024

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media