SMT-Based Software Model Checking

  • Alessandro Cimatti
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6349)


Formal verification is paramount in the development of high-assurance software. Model checking techniques for sequential software combine a high degree of automation and the ability to provide conclusive answers, even for infinite state systems. A key paradigm for scalable software model checking is counter-example guided abstraction refinement (CEGAR) [1]. In this paradigm, an abstraction (or over-approximation) of the program is searched for an abstract path leading to an assertion violation. If such a path does not exist, then the program is safe. When such a path exists, and is feasible in the concrete program, then the path is a counter-example witnessing the assertion violation. If the path is infeasible in the concrete program, it is then analyzed to extract information needed to refine the abstraction.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Clarke, E.M., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement for symbolic model checking. J. ACM 50(5), 752–794 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Beyer, D., Henzinger, T.A., Jhala, R., Majumdar, R.: The software model checker BLAST. STTT 9(5-6), 505–525 (2007)CrossRefGoogle Scholar
  3. 3.
    Beyer, D., Cimatti, A., Griggio, A., Keremoglu, M.E., Sebastiani, R.: Software model checking via large-block encoding. In: FMCAD, pp. 25–32. IEEE, Los Alamitos (2009)Google Scholar
  4. 4.
    Bruttomesso, R., Cimatti, A., Franzén, A., Griggio, A., Sebastiani, R.: The MathSAT 4SMT Solver. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 299–303. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  5. 5.
    Cavada, R., Cimatti, A., Franzén, A., Kalyanasundaram, K., Roveri, M., Shyamasundar, R.K.: Computing Predicate Abstractions by Integrating BDDs and SMT Solvers. In: FMCAD, pp. 69–76. IEEE, Los Alamitos (2007)Google Scholar
  6. 6.
    Cimatti, A., Dubrovin, J., Junttila, T., Roveri, M.: Structure-aware computation of predicate abstraction. In: FMCAD, pp. 9–16. IEEE, Los Alamitos (2009)Google Scholar
  7. 7.
    Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.: Abstractions from proofs. In: POPL, pp. 232–244. ACM, New York (2004)Google Scholar
  8. 8.
    Holzmann, G.J., Peled, D.: An improvement in formal verification. In: Proceedings of the 7th IFIP WG6.1 International Conference on Formal Description Techniques VII, London, UK, pp. 197–211. Chapman & Hall, Ltd., Boca Raton (1995)Google Scholar
  9. 9.
    Cimatti, A., Micheli, A., Narasamdya, I., Roveri, M.: Verifying SystemC: a software model checking approach. In: FMCAD (to appear, 2010)Google Scholar
  10. 10.
    Moy, M.: Techniques and tools for the verification of systems-on-a-chip at the transaction level. Technical report, INPG, Grenoble, Fr. (December 2005)Google Scholar
  11. 11.
    Cimatti, A., Clarke, E.M., Giunchiglia, F., Roveri, M.: NuSMV: A New Symbolic Model Checker. STTT 2(4), 410–425 (2000)CrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Alessandro Cimatti
    • 1
  1. 1.FBK-irstTrentoItaly

Personalised recommendations