skip to main content
10.1145/3468264.3468602acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Conditional interpolation: making concurrent program verification more effective

Published: 18 August 2021 Publication History

Abstract

Due to the state-space explosion problem, efficient verification of real-world programs in large scale is still a big challenge. Particularly, thread alternation makes the verification of concurrent programs much more difficult since it aggravates this problem. In this paper, an application of Craig interpolation, namely conditional interpolation, is proposed to work together with CEGAR-based approach to reduce the state-space of concurrent tasks. Specifically, conditional interpolation is formalized to confine the reachable region of states so that infeasible conditional branches could be pruned. Furthermore, the generated conditional interpolants are utilized to shorten the interpolation paths, which makes the time consumed for verification significantly reduced. We have implemented the proposed approach on top of an open-source software model checker. Empirical results show that the conditional interpolation is effective in improving the verification efficiency of concurrent tasks.

References

[1]
Thomas Ball, Andreas Podelski, and Sriram K. Rajamani. 2001. Boolean and Cartesian Abstraction for Model Checking C Programs. In Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’01). Springer-Verlag, Berlin, Heidelberg. 268–283. isbn:3540418652 https://doi.org/10.1007/3-540-45319-9_19
[2]
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 (CAV’11). Springer-Verlag, Berlin, Heidelberg. 184–190. isbn:9783642221095
[3]
Dirk Beyer, M. Erkan Keremoglu, and Philipp Wendler. 2010. Predicate Abstraction with Adjustable-Block Encoding. In Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design (FMCAD ’10). FMCAD Inc, Austin, Texas. 189–198.
[4]
Dirk Beyer and Stefan Löwe. 2013. Explicit-State Software Model Checking Based on CEGAR and Interpolation. In Proceedings of the 16th International Conference on Fundamental Approaches to Software Engineering (FASE’13). Springer-Verlag, Berlin, Heidelberg. 146–162. isbn:9783642370564 https://doi.org/10.1007/978-3-642-37057-1_11
[5]
Armin Biere, Alessandro Cimatti, Edmund Clarke, Ofer Strichman, and Yunshan Zhu. 2003. Bounded Model Checking. Advances in Computers, 58 (2003), 12, 117 – 148. isbn:9780120121588 https://doi.org/10.1016/s0065-2458(03)58003-2
[6]
Alessandro Cimatti, Alberto Griggio, Bastiaan Joost Schaafsma, and Roberto Sebastiani. 2013. The MathSAT5 SMT Solver. In Proceedings of the 19th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’13). Springer-Verlag, Berlin, Heidelberg. 93–107. isbn:9783642367410 https://doi.org/10.1007/978-3-642-36742-7_7
[7]
Edmund Clarke, Orna Grumberg, Somesh Jha, Yuan Lu, and Helmut Veith. 2003. Counterexample-Guided Abstraction Refinement for Symbolic Model Checking. J. ACM, 50, 5 (2003), Sept., 752–794. issn:0004-5411 https://doi.org/10.1145/876638.876643
[8]
Edmund M. Clarke, Orna Grumberg, Somesh Jha, Yuan Lu, and Helmut Veith. 2000. Counterexample-Guided Abstraction Refinement. In Proceedings of the 12th International Conference on Computer Aided Verification (CAV ’00). Springer-Verlag, Berlin, Heidelberg. 154–169. isbn:3540677704
[9]
Lucas Cordeiro, Jeremy Morse, Denis Nicole, and Bernd Fischer. 2012. Context-Bounded Model Checking with ESBMC 1.17. In Proceedings of the 18th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’12). Springer-Verlag, Berlin, Heidelberg. 534–537. isbn:9783642287558 https://doi.org/10.1007/978-3-642-28756-5_42
[10]
Patrick Cousot and Radhia Cousot. 1977. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL ’77). Association for Computing Machinery, New York, NY, USA. 238–252. isbn:9781450373500 https://doi.org/10.1145/512950.512973
[11]
William Craig. 1957. Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory. Journal of Symbolic Logic, 22, 3 (1957), sep, 269–285. https://doi.org/10.2307/2963594
[12]
Satyaki Das, David L. Dill, and Seungjoon Park. 1999. Experience with Predicate Abstraction. In Proceedings of the 11th International Conference on Computer Aided Verification (CAV ’99). Springer-Verlag, Berlin, Heidelberg. 160–171. isbn:3540662022
[13]
Javier Esparza, Stefan Kiefer, and Stefan Schwoon. 2006. Abstraction Refinement with Craig Interpolation and Symbolic Pushdown Systems. In Proceedings of the 12th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’06). Springer-Verlag, Berlin, Heidelberg. 489–503. isbn:3540330569 https://doi.org/10.1007/11691372_35
[14]
Cormac Flanagan and Shaz Qadeer. 2002. Predicate Abstraction for Software Verification. In Proceedings of the 29th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’02). Association for Computing Machinery, New York, NY, USA. 191–202. isbn:1581134509 https://doi.org/10.1145/503272.503291
[15]
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. isbn:3540607617
[16]
Mark Harman and Robert Hierons. 2001. An overview of program slicing. Software Focus, 2, 3 (2001), 85–92. https://doi.org/10.1002/swf.41
[17]
Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar, and Kenneth L. McMillan. 2004. Abstractions from Proofs. In Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’04). Association for Computing Machinery, New York, NY, USA. 232–244. isbn:158113729X https://doi.org/10.1145/964001.964021
[18]
Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar, and Grégoire Sutre. 2002. Lazy Abstraction. SIGPLAN Not., 37, 1 (2002), Jan., 58–70. issn:0362-1340 https://doi.org/10.1145/565816.503279
[19]
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
[20]
Kenneth L. McMillan. 2003. Interpolation and SAT-Based Model Checking. In Computer Aided Verification (CAV’03). Springer-Verlag, Berlin, Heidelberg. 1–13. isbn:978-3-540-45069-6 https://doi.org/10.1007/978-3-540-45069-6_1
[21]
Kenneth L. McMillan. 2006. Lazy Abstraction with Interpolants. In Proceedings of the 18th International Conference on Computer Aided Verification (CAV’06). Springer-Verlag, Berlin, Heidelberg. 123–136. isbn:354037406X https://doi.org/10.1007/11817963_14
[22]
Stephan Merz. 2000. Model Checking: A Tutorial Overview. In Proceedings of the 4th Summer School on Modeling and Verification of Parallel Processes (MOVEP ’00). Springer-Verlag, Berlin, Heidelberg. 3–38. isbn:3540427872 https://doi.org/10.1007/3-540-45510-8_1
[23]
Hyoung Seok Hong, Insup Lee, and Oleg Sokolsky. 2005. Abstract Slicing: A New Approach to Program Slicing Based on Abstract Interpretation and Model Checking. In Proceedings of the Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM ’05). IEEE Computer Society, USA. 25–34. isbn:0769522920 https://doi.org/10.1109/SCAM.2005.2
[24]
Josep Silva. 2012. A Vocabulary of Program Slicing-Based Techniques. ACM Comput. Surv., 44, 3 (2012), Article 12, June, 41 pages. issn:0360-0300 https://doi.org/10.1145/2187671.2187674
[25]
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
[26]
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 (ASE’17). IEEE Press, 183–193. isbn:9781538626849 https://doi.org/10.1109/ase.2017.8115631
[27]
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 (TACAS’14). Springer-Verlag, Berlin, Heidelberg. 402–404. isbn:978-3-642-54862-8 https://doi.org/10.1007/978-3-642-54862-8_30
[28]
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
  • (2022)Prioritized Constraint-Aided Dynamic Partial-Order ReductionProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3561159(1-13)Online publication date: 10-Oct-2022
  • (2021)A CEGAR-Based Static–Dynamic Approach to Verifying Full Regular Properties of C ProgramsIEEE Transactions on Reliability10.1109/TR.2021.311887770:4(1455-1467)Online publication date: Dec-2021

Index Terms

  1. Conditional interpolation: making concurrent program verification more effective

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ESEC/FSE 2021: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
    August 2021
    1690 pages
    ISBN:9781450385626
    DOI:10.1145/3468264
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 18 August 2021

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. CEGAR
    2. concurrent program verification
    3. conditional interpolation
    4. software model checking
    5. state-space reduction

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    ESEC/FSE '21
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 112 of 543 submissions, 21%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)30
    • Downloads (Last 6 weeks)5
    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
    • (2022)Prioritized Constraint-Aided Dynamic Partial-Order ReductionProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3561159(1-13)Online publication date: 10-Oct-2022
    • (2021)A CEGAR-Based Static–Dynamic Approach to Verifying Full Regular Properties of C ProgramsIEEE Transactions on Reliability10.1109/TR.2021.311887770:4(1455-1467)Online publication date: Dec-2021

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media