Skip to main content

Building SMT-Based Software Model Checkers: An Experience Report

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 5749))

Abstract

In this paper I report on my experience on developing two SMT-based software model checking techniques and show—through comparison with rival state-of-the-art software model checkers—that SMT solvers are key to the effectiveness and scalability of software model checking.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Armando, A., Benerecetti, M., Carotenuto, D., Mantovani, J., Spica, P.: The EUREKA tool for software model checking. In: Stirewalt, R.E.K., Egyed, A., Fischer, B. (eds.) ASE, pp. 541–542. ACM, New York (2007)

    Chapter  Google Scholar 

  2. Armando, A., Benerecetti, M., Mantovani, J.: Abstraction refinement of linear programs with arrays. In: Grumberg, O., Huth, M. (eds.) TACAS 2007. LNCS, vol. 4424, pp. 373–388. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  3. Armando, A., Castellini, C., Mantovani, J.: Software model checking using linear constraints. In: Davies, J., Schulte, W., Barnett, M. (eds.) ICFEM 2004. LNCS, vol. 3308, pp. 209–223. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  4. Armando, A., Mantovani, J., Platania, L.: Bounded Model Checking of Software using SMT Solvers instead of SAT Solvers. In: Valmari, A. (ed.) SPIN 2006. LNCS, vol. 3925, pp. 146–162. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  5. Armando, A., Mantovani, J., Platania, L.: Bounded Model Checking of Software using SMT Solvers instead of SAT Solvers. International Journal on Software Tools for Technology Transfer (STTT) 11(1), 69–83 (2009)

    Article  MATH  Google Scholar 

  6. Barrett, C., Berezin, S.: CVC Lite: A new implementation of the cooperating validity checker. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 515–518. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  7. Ball, T., Bounimova, E., Cook, B., Levin, V., Lichtenberg, J., McGarvey, C., Ondrusek, B., Rajamani, S.K., Ustuner, A.: Thorough static analysis of device drivers. In: EuroSys 2006: Proceedings of the 2006 EuroSys conference, pp. 73–85. ACM Press, New York (2006)

    Google Scholar 

  8. Bellman, R.E.: On a Routing Problem. Quarterly of applied mathematics 16, 87–90 (1958)

    Article  MathSciNet  MATH  Google Scholar 

  9. Bultan, T., Gerber, R., Pugh, W.: Model-checking concurrent systems with unbounded integer variables: symbolic representations, approximations, and experimental results. ACM Transactions on Programming Languages and Systems 21(4), 747–789 (1999)

    Article  Google Scholar 

  10. Black, P.E.: Gray code, in dictionary of algorithms and data structures (2005), http://www.nist.gov/dads/HTML/graycode.html

  11. Ball, T., Rajamani, S.K.: Bebop: A symbolic model checker for boolean programs. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 113–130. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  12. Ball, T., Rajamani, S.K.: Automatically validating temporal safety properties of interfaces. In: Dwyer, M.B. (ed.) SPIN 2001. LNCS, vol. 2057, pp. 103–122. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  13. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL, Los Angeles, USA, pp. 238–252. ACM, New York (1977)

    Google Scholar 

  14. Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: An efficient method of computing static single assignment form. In: Proceedings of POPL (ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages), pp. 25–35. ACM, New York (1989)

    Google Scholar 

  15. Clarke, E., Kroening, D., Sharygina, N., Yorav, K.: SATABS: SAT-based predicate abstraction for ANSI-C. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 570–574. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  16. Clarke, E.: Model Checking. MIT Press, Boston (2000)

    Google Scholar 

  17. Collavizza, H., Rueher, M.: Exploration of the capabilities of constraint programming for software verification. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006. LNCS, vol. 3920, pp. 182–196. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  18. Detlefs, D.L., Nelson, G., Saxe, J.B.: Simplify: a Theorem Prover for Program Checking. Technical Report 148, HP Labs (2003)

    Google Scholar 

  19. Flanagan, C.: Software model checking via iterative abstraction refinement of constraint logic queries. In: CP+CV 2004 (2004)

    Google Scholar 

  20. Flanagan, C., Leino, K.R.M., Lillibridge, M., Nelson, G., Saxe, J.B., Stata, R.: Extended static checking for java. In: PLDI 2002: Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, pp. 234–245. ACM Press, New York (2002)

    Chapter  Google Scholar 

  21. Gates, B.: Keynote address at WinHEC 2002 (2002), http://www.microsoft.com/presspass/exec/billg/speeches/2002/04-18winhec.aspx

  22. Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy abstraction. In: POPL, Portland, USA, pp. 58–70. ACM, New York (2002)

    Google Scholar 

  23. Ivanicic, F., Shlyakhter, I., Gupta, A., Ganai, M.K.: Model checking c programs using f-soft. In: ICCD 2005: Proceedings of the 2005 International Conference on Computer Design, Washington, DC, USA, pp. 297–308. IEEE Computer Society, Los Alamitos (2005)

    Google Scholar 

  24. Kroening, D., Clarke, E., Yorav, K.: Behavioral consistency of C and Verilog programs using bounded model checking. In: Proc. of DAC 2003, Anaheim, USA, pp. 368–371. ACM Press, New York (2003)

    Google Scholar 

  25. Knuth, D.: The Art of Computer Programming, Volume 3: Sorting and Searching, vol. 3. Addison-Wesley, Reading (1997)

    MATH  Google Scholar 

  26. Sebastiani, R.: Lazy satisability modulo theories. JSAT 3(3-4), 141–224 (2007)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Armando, A. (2009). Building SMT-Based Software Model Checkers: An Experience Report. In: Ghilardi, S., Sebastiani, R. (eds) Frontiers of Combining Systems. FroCoS 2009. Lecture Notes in Computer Science(), vol 5749. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04222-5_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-04222-5_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-04221-8

  • Online ISBN: 978-3-642-04222-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics