Generating Verification Conditions
In this chapter we consider the problem of mechanising the construction of derivations in Hoare logic having a given Hoare triple as conclusion. We are thus concerned with the backwards application of rules of the logic, which will eventually produce a derivation, i.e. a tree in which all leaves correspond to instances of axioms, and all side conditions hold.
The goal of this chapter is to show that there exists a strategy for conducting the proofs such that, if some of the side conditions required do not hold, then no derivation exists for the goal at hand. This strategy results in the definition of what is usually known as a verification conditions generator.
KeywordsInference System Side Condition Verification Condition Sequence Rule Proof Tree
- 1.Backhouse, R.: Program Construction—Calculating Implementations from Specifications. Wiley, New York (2003) Google Scholar
- 2.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. Lecture Notes in Computer Science, vol. 4111, pp. 364–387. Springer, Berlin (2005) Google Scholar
- 3.Bertot, Y.: Theorem proving support in programming language semantics. CoRR, abs/0707.0926 (2007) Google Scholar
- 8.Kaldewaij, A.: Programming: The Derivation of Algorithms. Prentice-Hall International, Upper Saddle River (1990) Google Scholar
- 9.Leino, K.R.M., Saxe, J.B., Stata, R.: Checking Java programs via guarded commands. In: Proceedings of the Workshop on Object-Oriented Technology, London, UK, 1999, pp. 110–111. Springer, Berlin (1999) Google Scholar