Skip to main content

Auditing User-Provided Axioms in Software Verification Conditions

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8187))

Abstract

A common approach to formally checking assertions inserted into a program is to first generate verification conditions, logical sentences that, if then proven, ensure the assertions are correct. Sometimes users provide axioms that get incorporated into verification conditions. Such axioms can capture aspects of the program’s specification or can be hints to help automatic provers. There is always the danger of mistakes in these axioms. In the worst case these mistakes introduce inconsistencies and verification conditions become erroneously provable.

We discuss here our use of an SMT solver to investigate the quality of user-provided axioms, to check for inconsistencies in axioms and to verify expected relationships between axioms, for example.

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   49.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. Alt-Ergo: an OCAML SMT solver for software verification, homepage at http://alt-ergo.lri.fr/

  2. CVC3: an automatic theorem prover for Satisfiability Modulo Theories (SMT), homepage at http://cvc4.cs.nyu.edu

  3. Ahn, K.Y., Denney, E.: A framework for testing first-order logic axioms in program verification. Software Quality Journal 21, 159–200 (2013)

    Article  Google Scholar 

  4. Barnes, J., Chapman, R., Johnson, R., Widmaier, J., Cooper, D., Everett, B.: Engineering the Tokeneer enclave protection software. In: 1st International Symposium Secure Software Engineering (ISSSE). IEEE (2006), http://www.adacore.com/sparkpro/tokeneer

  5. Barnes, J., with Altran Praxis: SPARK: the proven approach to high Integrity Software. Altran Praxis (2012)

    Google Scholar 

  6. Barnett, M., Chang, B.-Y.E., DeLine, R., Jacobs, B., Leino, K.R.M.: Boogie: A modular reusable verifier for object-oriented programs. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2005. LNCS, vol. 4111, pp. 364–387. Springer, Heidelberg (2006), http://research.microsoft.com/en-us/projects/boogie/ for current information on Boogie

    Chapter  Google Scholar 

  7. Beckert, B., Bormer, T., Klebanov, V.: On essential program annotations and completeness of verifying compilers. In: Filliâtre, J.C., Freitas, L. (eds.) Proceedings, Workshop on Verified Software: Theory, Tools, and Experiments, VSTTE (2009)

    Google Scholar 

  8. Bobot, F., Filliâtre, J.C., Marché, C., , Melquiond, G., Paskevich, A.: The why3 platform, version 0.80. Tech. rep., University Paris-Sud, CNRS, Inria (October 2012), http://why3.lri.fr

  9. Bobot, F., Filliâtre, J.C., Marché, C., Paskevich, A.: Why3: Shepherd your herd of provers. In: Leino, K.R.M., Moskal, M. (eds.) Boogie 2011: First International Workshop on Intermediate Verification Languages, pp. 53–64 ( August 2011), http://proval.lri.fr/publications/boogie11final.pdf

  10. Boyer, R.S., Moore, J.S.: A Computational Logic. Academic Press (1979), http://www.cs.utexas.edu/users/boyer/acl.pdf

  11. Claessen, K., Hughes, J.: Quickcheck: A lightweight tool for random testing of haskell programs. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming, pp. 268–279 (2000)

    Google Scholar 

  12. Cohen, E., Dahlweid, M., Hillebrand, M., Leinenbach, D., Moskal, M., Santen, T., Schulte, W., Tobies, S.: VCC: A practical system for verifying concurrent C. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 23–42. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  13. Crocker, D., Carlton, J.: Verification of c programs using automated reasoning. In: Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM), pp. 7–14. IEEE Computer Society (2007)

    Google Scholar 

  14. Dutertre, B., de Moura, L.: The Yices SMT solver (August 2006), tool paper at http://yices.csl.sri.com/tool-paper.pdf

  15. King, J.C.: A Program Verifier. Ph.D. thesis, Carnegie-Mellon University (1969)

    Google Scholar 

  16. de Moura, L., Bjørner, N.S.: Z3: An efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  17. Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002), http://www.cl.cam.ac.uk/research/hvg/Isabelle/ for current information

    Book  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Jackson, P., Schanda, F., Wallenburg, A. (2013). Auditing User-Provided Axioms in Software Verification Conditions. In: Pecheur, C., Dierkes, M. (eds) Formal Methods for Industrial Critical Systems. FMICS 2013. Lecture Notes in Computer Science, vol 8187. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-41010-9_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-41010-9_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-41009-3

  • Online ISBN: 978-3-642-41010-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics