Skip to main content
Log in

Satisfiability solving for software verification

  • Regular Paper
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  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)

  2. Armando A., Ranise S., Rusinowitch M.: A rewriting approach to satisfiability procedures. Inf. Comput. 183(2), 140–164 (2003)

    Article  MATH  MathSciNet  Google Scholar 

  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)

  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)

    MathSciNet  Google Scholar 

  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. 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)

  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)

  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)

  9. Detlefs D., Nelson G.C., Saxe J.B.: Simplify: a theorem prover for program checking. JACM 52(3), 365–473 (2005)

    Article  MathSciNet  Google Scholar 

  10. Enderton H.B.: A Mathematical Introduction to Logic. Academic Press, New York (1972)

    MATH  Google Scholar 

  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)

  12. Ganzinger H., Stuber J.: Superposition with equivalence reasoning and delayed clause normal form transformation. Inf. Comput. 199(1–2), 3–23 (2005)

    Article  MATH  MathSciNet  Google Scholar 

  13. Grundy, J., Melham, T., Krstić, S.: Tool Building Requirements for an API to First-Order Solvers. ENTCS 144 (2006)

  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)

  15. Kuncak, V., Rinard, M.: An overview of the Jahob analysis system: Project Goals and Current Status. In: NSF Next Generation Software Workshop (2006)

  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)

  17. Nelson G., Oppen D.C.: Fast decision procedures based on congruence closure. J. ACM 27(2), 356–364 (1980)

    Article  MATH  MathSciNet  Google Scholar 

  18. Nonnengart, A., Weidenbach, C.: Computing small clause normal forms. In: Handbook of Automated Reasoning. Elsevier, Amsterdam (2001)

  19. Reif, W., Schellhorn, G.: Automated deduction—a basis for applications, vol. 1. In: Theorem Proving in Large Theories. Kluwer, Dordrecht (1998)

  20. Schulz, S.: E—a brainiac theorem prover. AI Communications (2002)

  21. Sebastiani R.: Lazy satisfiability modulo theories. J. Satisf. Boolean Modeling Comput. 3, 141–224 (2007)

    MATH  MathSciNet  Google Scholar 

  22. The SMT-Library Initiative. http://www.smt-lib.org

  23. Weidenbach, C.: Combining superposition, sorts and splitting. In: Robinson, A., Voronkov, A. (eds.) Hand. of Automated Reasoning (2001)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Silvio Ranise.

Additional information

This work has been done while D. Déharbe was at LORIA-INRIA-Lorraine (Nancy, France) and has been partially funded by CNPq and the French project ARROWS supported by the Agence Nationale de la Recherche.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Déharbe, D., Ranise, S. Satisfiability solving for software verification. Int J Softw Tools Technol Transfer 11, 255–260 (2009). https://doi.org/10.1007/s10009-009-0105-6

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-009-0105-6

Keywords

Navigation