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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Alt-Ergo: an OCAML SMT solver for software verification, homepage at http://alt-ergo.lri.fr/
CVC3: an automatic theorem prover for Satisfiability Modulo Theories (SMT), homepage at http://cvc4.cs.nyu.edu
Ahn, K.Y., Denney, E.: A framework for testing first-order logic axioms in program verification. Software Quality Journal 21, 159–200 (2013)
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
Barnes, J., with Altran Praxis: SPARK: the proven approach to high Integrity Software. Altran Praxis (2012)
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
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)
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
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
Boyer, R.S., Moore, J.S.: A Computational Logic. Academic Press (1979), http://www.cs.utexas.edu/users/boyer/acl.pdf
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)
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)
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)
Dutertre, B., de Moura, L.: The Yices SMT solver (August 2006), tool paper at http://yices.csl.sri.com/tool-paper.pdf
King, J.C.: A Program Verifier. Ph.D. thesis, Carnegie-Mellon University (1969)
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)
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
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)