Satisfiability solving for software verification

Regular Paper


Declarative techniques for software verification require the availability of scalable, predictable, and flexible satisfiability solvers. We describe our approach to build such solvers by combining equational theorem proving, Boolean solving, arithmetic reasoning, and some transformations of the proof obligations. The proposed techniques have been implemented in a system called haRVey and the viability of the approach is shown on proof obligations generated in the certification of aerospace code.


Software verification Equational theorem proving Boolean solving Theory reasoning 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Armando, A., Bonacina, M.P., Ranise, S., Schulz, S.: On a rewriting approach to satisfiability procedures: extension, combination of theories and an experimental appraisal. ACM TOCL 10(1), (2009)Google Scholar
  2. 2.
    Armando A., Ranise S., Rusinowitch M.: A rewriting approach to satisfiability procedures. Inf. Comput. 183(2), 140–164 (2003)MATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Ball, T., Rajamani, S.K.: Automatically validating temporal safety properties of interfaces. In: Proceedings of SPIN 2001. Lecture Notes in Computer Science, vol. 2057, pp. 103–122 (2001)Google Scholar
  4. 4.
    Boyer R., Moore J.S.: Integrating decision procedures into heuristic theorem provers: a case study of linear arithmetic. Mach. Intell. 11, 83–124 (1988)MathSciNetGoogle Scholar
  5. 5.
    Couchot J.F., Déharbe D., Giorgetti A., Ranise S.: Scalable automated proving and debugging of set-based specifications. J. Braz. Comput. Soc. 9(2), 17–36 (2003)Google Scholar
  6. 6.
    Couchot, J.F., Hubert, T.: A graph-based strategy for the selection of hypotheses. In: FTP 2007—International Workshop on First-Order Theorem Proving. Liverpool (2007)Google Scholar
  7. 7.
    Déharbe, D., Ranise, S.: Light-Weight Theorem Proving for Debugging and Verifying Units of Code. In: I.C.S. Press (ed.) SEFM’03 (2003)Google Scholar
  8. 8.
    Denney, E., Fischer, B., Schumann, J.: Using automated theorem provers to certify auto-generated aerospace software. In: Proceedings of IJCAR’04. Lecture Notes in Computer Science, vol. 3097 (2004)Google Scholar
  9. 9.
    Detlefs D., Nelson G.C., Saxe J.B.: Simplify: a theorem prover for program checking. JACM 52(3), 365–473 (2005)CrossRefMathSciNetGoogle Scholar
  10. 10.
    Enderton H.B.: A Mathematical Introduction to Logic. Academic Press, New York (1972)MATHGoogle Scholar
  11. 11.
    Filliâtre, J.C., Marché, C.: Multi-Prover Verification of C Programs. In: Proceedings of ICFEM’04. Lecture Notes in Computer Science, vol. 3308, pp. 15–29 (2004)Google Scholar
  12. 12.
    Ganzinger H., Stuber J.: Superposition with equivalence reasoning and delayed clause normal form transformation. Inf. Comput. 199(1–2), 3–23 (2005)MATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Grundy, J., Melham, T., Krstić, S.: Tool Building Requirements for an API to First-Order Solvers. ENTCS 144 (2006)Google Scholar
  14. 14.
    Kirchner, H., Ranise, S., Ringeissen, C., Tran, D.K.: On superposition-based satisfiability procedures and their combination. In: Proceedings of the Second International Conference on Theoretical Aspects of Computing (ICTAC’05), Lecture Notes in Computer Science, vol. 3722, pp. 594–608. Springer, Heidelberg (2005)Google Scholar
  15. 15.
    Kuncak, V., Rinard, M.: An overview of the Jahob analysis system: Project Goals and Current Status. In: NSF Next Generation Software Workshop (2006)Google Scholar
  16. 16.
    de Moura, L., Ruess, H.: An experimental evaluation of ground decision procedures. In: Proceedings of CAV’04. Lecture Notes in Computer Science, vol. 3114 (2004)Google Scholar
  17. 17.
    Nelson G., Oppen D.C.: Fast decision procedures based on congruence closure. J. ACM 27(2), 356–364 (1980)MATHCrossRefMathSciNetGoogle Scholar
  18. 18.
    Nonnengart, A., Weidenbach, C.: Computing small clause normal forms. In: Handbook of Automated Reasoning. Elsevier, Amsterdam (2001)Google Scholar
  19. 19.
    Reif, W., Schellhorn, G.: Automated deduction—a basis for applications, vol. 1. In: Theorem Proving in Large Theories. Kluwer, Dordrecht (1998)Google Scholar
  20. 20.
    Schulz, S.: E—a brainiac theorem prover. AI Communications (2002)Google Scholar
  21. 21.
    Sebastiani R.: Lazy satisfiability modulo theories. J. Satisf. Boolean Modeling Comput. 3, 141–224 (2007)MATHMathSciNetGoogle Scholar
  22. 22.
    The SMT-Library Initiative.
  23. 23.
    Weidenbach, C.: Combining superposition, sorts and splitting. In: Robinson, A., Voronkov, A. (eds.) Hand. of Automated Reasoning (2001)Google Scholar

Copyright information

© Springer-Verlag 2009

Authors and Affiliations

  1. 1.DIMAp/UFRNNatalBrazil
  2. 2.Dip. di InformaticaUniversità di VeronaVeronaItaly

Personalised recommendations