Proving properties of programs by means of predicate logic

  • Józef Winkowski
Part of the Lecture Notes in Computer Science book series (LNCS, volume 32)


In this paper a method of proving properties of programs is presented. It consists in associating with any program under consideration a formal theory which describes all executions of this program. Such a theory can be constructed by introducing a notion of history, and by refering other objects which take part in a program execution to histories of this execution. Appropriate axioms and the properties which are to be proved can be then formulated as formulas of a natural predicate logic language. This enables one to consider various program properties as theorems of the resulting theory, and to prove them by usual means of predicate logic. Besides, it is possible to formulate and prove properties which can not be formulated in other methods.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    de Bakker, J.W., Recursive procedures. Proc. M-25 Informatica Symp., Math. Center Tracts 37, Amsterdam, 1971.Google Scholar
  2. 2.
    Blikle, A. and Mazurkiewicz, A., An algebraic approach to the theory of programs, algorithms, languages and recursiveness. Proc. of Symp. and Summer School on MFCS (Mathematical Foundations of Computer Science), Warsaw-Jabłonna, August 21–27, 1972.Google Scholar
  3. 3.
    Blikle, A., An extended approach to mathematical analysis of programs. CC PAS Reports 169, 1974.Google Scholar
  4. 4.
    Clint, M., Program proving: Coroutines. Acta Informatica 2(1973)Google Scholar
  5. 5.
    Dahl, O.J., An approach to correctness proofs of semicoroutines. Proc. of Symp. and Summer School on MFCS, Warsaw-Jadwisin, June 17–22, 1974, Springer-Verlag, Berlin, 1975, pp. 157–174.Google Scholar
  6. 6.
    Mazurkiewicz, A., Recursive algorithms and formal languages. Bull. Acad. Polon. Sci., Sér. Sci. Math. Astronom. Phys. 20(1972).Google Scholar
  7. 7.
    Nivat, M., Langages algébriques sur le magma libre et sémantique des schémas de programmes. Proc. IRIA Symp. on Automata, Formal Languages and Programming 1972, North-Holland, Amsterdam. pp. 293–308.Google Scholar
  8. 8.
    Rasiowa, H., ω+-valued algorithmic logic as a tool to investigate procedures. Proc. of Symp. and Summer School on MFCS, Warsaw-Jadwisin, June 17–22, 1974, Springer-Verlag, Berlin, 1975, pp. 423–450.Google Scholar
  9. 9.
    de Roever, W.P., Call-by-value versus call-by-name: a proof theoretic comparison. ibid., pp. 451–463.Google Scholar
  10. 10.
    Salwicki, A., Procedures, formal computations and models. ibid, p. 464–484.Google Scholar
  11. 11.
    Scott, D. and Strachey, Ch., Toward a mathematical semantics for computer languages. Techn. Monogr. PRG-4, Oxford University, 1970.Google Scholar
  12. 12.
    Winkowski, J., A natural method of proving properties of programs. (to appear in CC PAS Reports).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1975

Authors and Affiliations

  • Józef Winkowski
    • 1
  1. 1.Computation Centre of PASWarsaw, PKiNPoland

Personalised recommendations