Generating Verification Conditions

  • José Bacelar Almeida
  • Maria João Frade
  • Jorge Sousa Pinto
  • Simão Melo de Sousa
Part of the Undergraduate Topics in Computer Science book series (UTICS)


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.


Inference System Side Condition Verification Condition Sequence Rule Proof Tree 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Backhouse, R.: Program Construction—Calculating Implementations from Specifications. Wiley, New York (2003) Google Scholar
  2. 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. 3.
    Bertot, Y.: Theorem proving support in programming language semantics. CoRR, abs/0707.0926 (2007) Google Scholar
  4. 4.
    Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall International, Englewood Cliffs (1976) zbMATHGoogle Scholar
  5. 5.
    Gordon, M.J.C.: Mechanizing programming logics in higher order logic. In: Birtwistle, G., Subrahmanyam, P.A. (eds.) Current Trends in Hardware Verification and Automated Theorem Proving, pp. 387–439. Springer, New York (1989) CrossRefGoogle Scholar
  6. 6.
    Gries, D.: The Science of Programming. Springer, Secaucus (1987) zbMATHGoogle Scholar
  7. 7.
    Homeier, P.V., Martin, D.F.: A mechanically verified verification condition generator. Comput. J.38(2), 131–141 (1995) CrossRefGoogle Scholar
  8. 8.
    Kaldewaij, A.: Programming: The Derivation of Algorithms. Prentice-Hall International, Upper Saddle River (1990) Google Scholar
  9. 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

Copyright information

© Springer-Verlag London Limited 2011

Authors and Affiliations

  • José Bacelar Almeida
    • 1
  • Maria João Frade
    • 2
  • Jorge Sousa Pinto
    • 1
  • Simão Melo de Sousa
    • 2
  1. 1.Depto. InformáticaUniversidade do MinhoBragaPortugal
  2. 2.Depto. InformáticaUniversidade Beira InteriorCovilhãPortugal

Personalised recommendations