A Verification Environment for Sequential Imperative Programs in Isabelle/HOL

  • Norbert Schirmer
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3452)


We develop a general language model for sequential imperative programs together with a Hoare logic. We instantiate the framework with common programming language constructs and integrate it into Isabelle/HOL, to gain a usable and sound verification environment.


Procedure Call Recursive Procedure Proof Obligation High Order Logic Total Correctness 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ballarin, C.: Locales and locale expressions in Isabelle/Isar. In: Berardi, S., Coppo, M., Damiani, F. (eds.) TYPES 2003. LNCS, vol. 3085, pp. 34–50. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  2. 2.
    Burstall, R.: Some techniques for proving correctness of programs which alter data structures. In: Meltzer, B., Michie, D. (eds.) Machine Intelligence 7, pp. 23–50. Edinburgh University Press, Edinburgh (1972)Google Scholar
  3. 3.
    Filliâtre, J.-C.: Verification of Non-Functional Programs using Interpretations in Type Theory. Journal of Functional Programming 13(4), 709–745 (2003)MathSciNetzbMATHCrossRefGoogle Scholar
  4. 4.
    Filliâtre, J.-C.: Why: a multi-language multi-prover verification tool. Research Report 1366, LRI, Université Paris Sud (March 2003)Google Scholar
  5. 5.
    Harrison, J.: Formalizing Dijkstra. In: Grundy, J., Newey, M. (eds.) TPHOLs 1998. LNCS, vol. 1479, pp. 171–188. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  6. 6.
    Homeier, P.V.: Trustworthy Tools for Trustworthy Programs: A Mechanically Verified Verification Condition Generator for the Total Correctness of Procedures. PhD thesis, Department of Computer Science, University of California, Los Angeles (1995)Google Scholar
  7. 7.
    Huisman, M.: Java program verification in higher order logic with PVS and Isabelle. PhD thesis, University of Nijmegen (2000)Google Scholar
  8. 8.
    Jacobs, B.: Weakest precondition reasoning for Java programs with JML annotations. Journal of Logic and Algebraic Programming 58, 61–88 (2004)zbMATHCrossRefGoogle Scholar
  9. 9.
    Kleymann, T.: Hoare Logic and auxiliary variables. Formal Aspects of Computing 11(5), 541–566 (1999)zbMATHCrossRefGoogle Scholar
  10. 10.
    Mehta, F., Nipkow, T.: Proving pointer programs in higher-order logic. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 121–135. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  11. 11.
    Mehta, F., Nipkow, T.: Proving pointer programs in higher-order logic. Information and Computation (2005) (to appear)Google Scholar
  12. 12.
    Gordon, M.J.C.: Mechanizing programming logics in higher-order logic. In: Birtwistle, G.M., Subrahmanyam, P.A. (eds.) Current Trends in Hardware Verification and Automatic Theorem Proving (Proceedings of the Workshop on Hardware Verification), Banff, Canada, pp. 387–439. Springer, Berlin (1988)Google Scholar
  13. 13.
    Nipkow, T.: Hoare logics in Isabelle/HOL. In: Schwichtenberg, H., Steinbrüggen, R. (eds.) Proof and System-Reliability, pp. 341–367. Kluwer, Dordrecht (2002)CrossRefGoogle Scholar
  14. 14.
    Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)zbMATHGoogle Scholar
  15. 15.
    Norrish, M.: C formalised in HOL. PhD thesis, University of Cambridge (1998)Google Scholar
  16. 16.
    Oheimb, D.v.: Analyzing Java in Isabelle/HOL: Formalization, Type Safety and Hoare Logic. PhD thesis, Technische Universität München (2001)Google Scholar
  17. 17.
    Ortner, V.: Verification of BDD Algorithms. Master’s thesis, Technische Universität München (2004),
  18. 18.
    Prensa Nieto, L.: Verification of Parallel Programs with the Owicki-Gries and Rely-Guarantee Methods in Isabelle/HOL. PhD thesis, Technische Universität München (2002)Google Scholar
  19. 19.
    Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proc. 17th IEEE Symposium on Logic in Computer Science (LICS 2002), pp. 55–74 (2002)Google Scholar
  20. 20.
    Schirmer, N.: A Verification Environment for Sequential Imperative Programs in Isabelle/HOL. In: Klein, G. (ed.) Proc. NICTA Workshop on OS Verification 2004 (2004) ID: 0401005T-1,
  21. 21.
    von Wright, J., Hekanaho, J., Luostarinen, P., Långbacka, T.: Mechanizing some advanced refinement concepts. Formal Methods in System Design 3, 49–81 (1993)zbMATHCrossRefGoogle Scholar
  22. 22.
    Wadler, P.: The essence of functional programming. In: Proc. 19th ACM Symp. Principles of Programming Languages (1992)Google Scholar
  23. 23.
    Wenzel, M.: Miscellaneous Isabelle/Isar examples for higher order logic. Isabelle/ Isar proof document (2001)Google Scholar
  24. 24.
    Wenzel, M.: Isabelle/Isar — A Versatile Environment for Human-Readable Formal Proof Documents. PhD thesis, Institut für Informatik, Technische Universität München (2002),

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Norbert Schirmer
    • 1
  1. 1.Institut für InformatikTechnische Universität MünchenGermany

Personalised recommendations