A dynamic logic for program verification

  • M. Heisel
  • W. Reif
  • W. Stephan
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 363)


The paper presents an effective dynamic logic of programs. Its novelty lies in the "approximation" of infinitary rules by induction. Although this logic is no longer complete, it is still strong enough to simulate many well-known logics for program verification. Compared with other logics it has the advantage that it strengthens the role of dynamic reasoning and thus makes proofs more natural. An interactive verification system using this logic is outlined.


Recursive Procedure Dynamic Logic Symbolic Execution Verification Method Program Verification 
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. [ANS 82]
    Andreka, H., Nemeti, I., Sain, I. A Complete Logic for Reasoning about Programs via Nonstandard Model Theory, Part I, II, Theoretical Computer Science 17, pp. 139–212, 259–278Google Scholar
  2. [BK 84]
    Bergstra, J. A., Klop, J. W. Proving Program Inclusion Using HOARE's Logic, Theoretical Computer Science 30 (1984), pp. 1–48Google Scholar
  3. [Br 80]
    de Bruijn, N.G. A Survey of the Project AUTOMATH. Essays in Combinatory Logic, Lambda Calculus, and Formalism, J.P. Seldin and J.R. Hindley (eds.) Academic Press (1980), pp 589–606Google Scholar
  4. [Bu 74]
    Burstall, R.M. Program Proving as Hand Simulation with a little Induction. Information Processing 74, North-Holland Publishing Company (1974)Google Scholar
  5. [CKB 85]
    Constable, R./Knoblock, T./Bates, J. Writing Programs That Construct Proofs. Journal of Automated Reasoning, Vol.1, No.3, pp 285–326 (1985)Google Scholar
  6. [DJ 83]
    Damm, W./Josko, B. A sound and relatively* complete Hoare-logic for a language with higher type procedures, Acta Informatica 20 (1983), pp. 59–101Google Scholar
  7. [Go 82]
    Goldblatt, R. Axiomatising the Logic of Computer Programming. Springer LNCS 130 (1982)Google Scholar
  8. [Gr 81]
    Gries, D. The Science of Programming, Springer-Verlag (1981)Google Scholar
  9. [Ha 79]
    Harel, D. First Order Dynamic Logic. Springer LNCS 68 (1979)Google Scholar
  10. [Ha 84]
    Harel, D. Dynamic Logic. Handbook of Philosophical Logic, D. Gabbay and F. Guenther (eds.), Reidel (1984), Vol. 2, 496–604Google Scholar
  11. [Hai 81]
    Hailpern, B. Keeping a Foot on the Ground, Logics of Programs, Proceedings 81, LNCS 131, pp. 122–123Google Scholar
  12. [Ho 69]
    Hoare, C.A.R. An axiomatic basis for computer programming. Comm. ACM 12 (1969), pp. 576–580, 583Google Scholar
  13. [HRS 86]
    Heisel,M./Reif, W./Stephan, W. A Functional Language to Construct Proofs. Interner Bericht 1/86, Fakultät für Informatik, Universität Karlsruhe (1986)Google Scholar
  14. [HRS 87]
    Heisel,M./Reif, W./Stephan, W. Program Verification by Symbolic Execution and Induction. Proc. 11-th German Workshop on Artificial Intelligence, K. Morik (ed), Informatik Fachberichte 152, Springer-Verlag (1987)Google Scholar
  15. [HRS 88a]
    Heisel, M./Reif, W./Stephan, W. Implementing Verification Strategies in the KIV System. Proc. 9-th International Conference on Automated Deduction, E. Lusk/R. Overbeek (eds), Springer LNCS 310 (1988), pp. 131–140Google Scholar
  16. [HRS 88b]
    Heisel,M./Reif, W./Stephan, W. Reasoning about imperative programs with dynamic logic. Submitted for publication.Google Scholar
  17. [Ma 74]
    Manna, Z. Mathematical Theory of Computation. McGraw Hill (1974)Google Scholar
  18. [Ma 81]
    Manna, Z. Verification of Sequential Programs: Temporal Axiomatization. Theoretical Foundations of Programming Methodology, Nato Advanced Study Institutes Series C91, D. Reidel, (1981)Google Scholar
  19. [Ol 84]
    Olderog, E. R. Correctness of Programs with Pascal-like Procedures without Global Variables, Theoretical Computer Science 30 (1984), pp. 49–90Google Scholar
  20. [PA 86]
    Pasztor, A. Non-standard Algorithmic and Dynamic Logic, Journal of Symbolic Computation (86) 2, pp. 59–81.Google Scholar
  21. [Pn 77]
    Pnueli, A. The Temporal Logic of Programs, The 18th Annual Symposium on Foundations of Computer Science (Providence, Rhode Island), pp. 46–57, IEEE (1977)Google Scholar
  22. [Sa 70]
    Salwicki, A. Formalized Algorithmic Languages. Bull. Acad. Pol. Sci., Ser. Sci. Math. Astr. Phys. Vol. 18, No. 5 (1970)Google Scholar
  23. [St 85]
    Stephan, W. A Logic for Recursive Programs. Interner Bericht 5/85, Fakultät für Informatik, Universität Karlsruhe (1985)Google Scholar
  24. [St 89]
    Stephan, W. Axiomatising Recursive Procedures in Dynamic Logic. Forthcoming (1989)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • M. Heisel
    • 1
  • W. Reif
    • 1
  • W. Stephan
    • 1
  1. 1.Institut für Logik, Komplexität und DeduktionssystemeUniversität KarlsruheKarlsruheFederal Republic of Germany

Personalised recommendations