Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Concurrent Bounded Model Checking

Published: 06 February 2015 Publication History

Abstract

We introduce a methodology, based on symbolic execution, for Concurrent Bounded Model Checking. In our approach, we translate a program into a formula in a disjunctive form. This design enables concurrent verification, with a main thread running symbolic execution, without any constraint solving, to build subformulas, and a set of worker threads running a decision procedure for satisfiability checks.
We have implemented this methodology in a tool called JCBMC, the first bounded model checker for Java. JCBMC is built as an extension of Java Pathfinder, an open-source verification platform developed by NASA. JCBMC uses Symbolic PathFinder (SPF) for the symbolic execution, Z3 as the solver and implements concurrency with multi-threading.
For evaluation, we compare JCBMC against SPF and the Bounded Model Checker CBMC. The results of the experiments show that we can achieve significant advantages of performance over these two tools.

References

[1]
Benchmarks of loops in the Software Verification 2014 competition 2014. https://svn.sosy-lab.org/software/sv benchmarks/tags/svcomp14/loops/.
[2]
Java PathFinder. http://babelfish.arc.nasa.gov/trac/jpf/.
[3]
Z3. http://z3.codeplex.com/.
[4]
Erika Ábrahám, Tobias Schubert, Bernd Becker, Martin Fränzle, and Christian Herde. Parallel sat solving in bounded model checking. FMICS'06/PDMC'06, pages 301--315.
[5]
Alessandro Armando, Jacopo Mantovani, and Lorenzo Platania. Bounded model checking of software using smt solvers instead of sat solvers. STTT, 11(1):69--83, January 2009.
[6]
Daniel Balasubramanian, Corina S. Păsăreanu, Gábor Karsai, and Michael R. Lowry. Polyglot: systematic analysis for multiple statechart formalisms. TACAS'13, pages 523--529.
[7]
J. Barnat, L. Brim, M. _Ceška, and P. Ročkai. DiVinE: Parallel Distributed Model Checker (Tool paper). In HiBi/PDMC 2010, pages 4--7. IEEE, 2010.
[8]
Armin Biere, Alessandro Cimatti, Edmund M. Clarke, and Yunshan Zhu. Symbolic model checking without bdds. In Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems, TACAS '99, pages 193--207, London, UK, UK, 1999. Springer-Verlag.
[9]
Ethan Burns and Rong Zhou. Parallel model checking using abstraction. SPIN'12, pages 172--190, Berlin, Heidelberg, 2012. Springer-Verlag.
[10]
Cristian Cadar, Daniel Dunbar, and Dawson Engler. Klee: unassisted and automatic generation of high-coverage tests for complex systems programs. OSDI'08, pages 209--224.
[11]
Liviu Ciortea, Cristian Zamfir, Stefan Bucur, Vitaly Chipounov, and George Candea. Cloud9: a software testing service. SIGOPS Oper. Syst. Rev., 43(4):5--10, January 2010.
[12]
Edmund Clarke, Daniel Kroening, and Flavio Lerda. A tool for checking ANSI-C programs. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2004), volume 2988 of Lecture Notes in Computer Science, pages 168--176. Springer, 2004.
[13]
Edmund Clarke, Daniel Kroening, and Karen Yorav. Behavioral consistency of c and verilog programs using bounded model checking. In Proceedings of the 40th annual Design Automation Conference, DAC '03, pages 368--371, New York, NY, USA, 2003. ACM.
[14]
Patrice Godefroid, Nils Klarlund, and Koushik Sen. Dart: directed automated random testing. PLDI '05, pages 213--223. ACM, 2005.
[15]
Patrice Godefroid, Michael Y. Levin, and David A. Molnar. Automated whitebox fuzz testing. In NDSS, 2008.
[16]
Elsa L. Gunter and Doron Peled. Unit checking: Symbolic model checking for a unit of code. In Nachum Dershowitz, editor, Verification: Theory and Practice, Essays Dedicated to Zohar Manna on the Occasion of His 64th Birthday, volume 2772 of Lecture Notes in Computer Science, pages 548--567. Springer, 2003.
[17]
Gerard J. Holzmann and Dragan Bosnacki. The design of a multicore extension of the spin model checker. IEEE Trans. Softw. Eng., 33(10):659--674, October 2007.
[18]
Shahid Jabbar and Stefan Edelkamp. Parallel external directed model checking with linear i/o. VMCAI'06, pages 237--251, Berlin, Heidelberg, 2006. Springer-Verlag.
[19]
Temesghen Kahsai and Cesare Tinelli. Pkind: A parallel k-induction based model checker. In Jiri Barnat and Keijo Heljanko, editors, PDMC, volume 72 of EPTCS, pages 55--62, 2011.
[20]
Sarfraz Khurshid, Corina S. Păsăreanu, and Willem Visser. Generalized symbolic execution for model checking and testing. TACAS'03, pages 553--568. Springer-Verlag, 2003.
[21]
Andrew King. Distributed parallel symbolic execution. In Master Thesis, Kansas State University, 2009.
[22]
James C. King. Symbolic execution and program testing. Commun. ACM, 19(7):385--394, July 1976.
[23]
Marta Z. Kwiatkowska, Alessio Lomuscio, and Hongyang Qu. Parallel model checking for temporal epistemic logic. In ECAI, pages 543--548, 2010.
[24]
Pradeep K. Nalla, J. Weiss, JÃijrgen Ruf, Thomas Kropf, and Wolfgang Rosenstiel. Parallel bounded property checking with symc.
[25]
Robert Palmer and Ganesh Gopalakrishnan. Partial order reduction assisted parallel modelchecking (full version. Technical report, PDMC'2002, 2002.
[26]
Quoc-Sang Phan. Symbolic execution as dpll modulo theories. In 2014 Imperial College Computing Student Workshop, volume 43 of OpenAccess Series in Informatics (OASIcs), pages 58--65, Dagstuhl, Germany, 2014. Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik.
[27]
Corina S. P_as_areanu and Neha Rungta. Symbolic path_nder: symbolic execution of java bytecode. In Proceedings of the IEEE/ACM international conference on Automated software engineering, ASE '10, pages 179--180, New York, NY, USA, 2010. ACM.
[28]
T. Schubert, M. Lewis, and B. Becker. Pamira - a parallel sat solver with knowledge sharing. In MTV '05, pages 29--36, 2005.
[29]
Koushik Sen, Darko Marinov, and Gul Agha. Cute: a concolic unit testing engine for c. ESEC/FSE-13, pages 263--272. ACM, 2005.
[30]
J.H. Siddiqui and S Khurshid. Parsym: Parallel symbolic execution. In ICSTE, volume 1, pages V1--405--V1--409, 2010.
[31]
Carsten Sinz, Wolfgang Blochinger, and Wolfgang Kijchlin. Pasat - parallel sat-checking with lemma exchange: Implementation and applications. In SAT, 2001.
[32]
Matt Staats and Corina P_as_areanu. Parallel symbolic execution for structural test generation. ISSTA '10, pages 183--194, New York, NY, USA, 2010. ACM.
[33]
Ulrich Stern and David L. Dill. Parallelizing the murphi verifier. CAV '97, pages 256--278, London, UK, UK, 1997. Springer-Verlag.
[34]
Siert Wieringa, Matti Niemenmaa, and Keijo Heljanko. Tarmo: A framework for parallelized bounded model checking. In PDMC, pages 62--76, 2009.
[35]
Christoph M. Wintersteiger, Youssef Hamadi, and Leonardo Mendonça de Moura. A concurrent portfolio approach to smt solving. In CAV, pages 715--720, 2009.

Cited By

View all
  • (2024)ESBMC-Python: A Bounded Model Checker for Python ProgramsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3685304(1836-1840)Online publication date: 11-Sep-2024
  • (2021)Handling State Space Explosion in Component-Based Software Verification: A ReviewIEEE Access10.1109/ACCESS.2021.30817429(77526-77544)Online publication date: 2021
  • (2021)GPU Acceleration of Bounded Model Checking with ParaFROSTComputer Aided Verification10.1007/978-3-030-81688-9_21(447-460)Online publication date: 20-Jul-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 40, Issue 1
January 2015
237 pages
ISSN:0163-5948
DOI:10.1145/2693208
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 February 2015
Published in SIGSOFT Volume 40, Issue 1

Check for updates

Author Tags

  1. Bounded Model Checking
  2. Concurrency
  3. Symbolic Execution

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)16
  • Downloads (Last 6 weeks)4
Reflects downloads up to 11 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)ESBMC-Python: A Bounded Model Checker for Python ProgramsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3685304(1836-1840)Online publication date: 11-Sep-2024
  • (2021)Handling State Space Explosion in Component-Based Software Verification: A ReviewIEEE Access10.1109/ACCESS.2021.30817429(77526-77544)Online publication date: 2021
  • (2021)GPU Acceleration of Bounded Model Checking with ParaFROSTComputer Aided Verification10.1007/978-3-030-81688-9_21(447-460)Online publication date: 20-Jul-2021
  • (2020)Parallel and distributed bounded model checking of multi-threaded programsProceedings of the 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3332466.3374529(202-216)Online publication date: 19-Feb-2020
  • (2020)Concurrent Bug Finding Based on Bounded Model CheckingInternational Journal of Software Engineering and Knowledge Engineering10.1142/S021819402050024230:05(669-694)Online publication date: 26-Jun-2020
  • (2020)Verifying temporal specifications of Java programsSoftware Quality Journal10.1007/s11219-019-09488-9Online publication date: 25-May-2020
  • (2019)Parallel refinement for multi-threaded program verificationProceedings of the 41st International Conference on Software Engineering10.1109/ICSE.2019.00074(643-653)Online publication date: 25-May-2019
  • (2019)Extending DIVINE with Symbolic Verification Using SMTModeling Biomolecular Site Dynamics10.1007/978-3-030-17502-3_14(204-208)Online publication date: 4-Apr-2019
  • (2016)Refactoring verification using model transformationProceedings of the 1st International Workshop on Software Refactoring10.1145/2975945.2975950(17-24)Online publication date: 4-Sep-2016

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