Proving total correctness of programs in weak second-order logic

  • Rudolf Berghammer
  • Birgit Elbl
  • Ulf Schmerl
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 666)


A purely syntactical but nevertheless handy definition of the predicate transformer wp is presented. Weak second-order logic is used to formalize the weakest precondition for an imperative programming language similar to Dijkstra's language of guarded commands. It is demonstrated how to express and prove important properties of wp in this logic. Here a new normal form representation for wp plays an important rôle.


Imperative programming language weakest preconditions weak second-order logic nondeterminism guarded commands normal form theorem 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Back 81]
    Back R.J.R.: Proving total correctness of nondeterministic programs in infinitary logic. Acta Informatica 15, 233–249 (1981)Google Scholar
  2. [Dijkstra 75]
    Dijkstra E.W.: Guarded commands, nondeterminacy and formal derivation of programs. Comm. ACM 18, 8, 453–457 (1975)Google Scholar
  3. [Dijkstra 76]
    Dijkstra E.W.: A discipline of programming. Engelwood-Cliffs: Prentice-Hall (1976)Google Scholar
  4. [Ehrig Mahr 85]
    Ehrig H., Mahr B.: Fundamentals of algebraic specifications 1. Equations and initial semantics. EATCS Monographs in Theoretical Computer Science, Vol. 6, Berlin: Springer (1985)Google Scholar
  5. [Gries 81]
    Gries D.: The science of programming. Texts and Monographs in Computer Science, New York: Springer (1981)Google Scholar
  6. [Hoare 69]
    Hoare C.A.R.: An axiomatic basis for computer programming. Comm. ACM 12, 10, 576–583 (1969)Google Scholar
  7. [Karp 64]
    Karp C.R.: Languages with expressions of infinite length. Amsterdam: North-Holland (1964)Google Scholar
  8. [Keisler 71]
    Keisler H.J.: Model theory of infinitary logic. Amsterdam: North-Holland (1971)Google Scholar
  9. [Loeckx Sieber 84]
    Loeckx J., Sieber K.: The foundations of program verification. Stuttgart: Teubner (1984)Google Scholar
  10. [Platek 90]
    Platek R.A.: Making computers safe for the world: An introduction to proofs of programs. Part I. In: Logic and Computer Science, Lecture Notes in Mathematics 1429, Berlin: Springer (1990)Google Scholar
  11. [Tucker Zucker 88]
    Tucker J.V., Zucker J.I.: Program correctness over abstract data types with error-state semantics. CWI Monographs 6, Amsterdam: North-Holland (1988)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Rudolf Berghammer
    • 1
  • Birgit Elbl
    • 1
  • Ulf Schmerl
    • 1
  1. 1.Fakultät für InformatikUniversität der Bundeswehr MünchenNeubiberg

Personalised recommendations