# Formalizing Dijkstra

Refereed Papers

First Online:

## Abstract

We present a HOL formalization of the foundational parts of Dijkstra's classic monograph “A Discipline of Programming≓. While embedding programming language semantics in theorem provers is hardly new, this particular undertaking raises several interesting questions, and perhaps makes an interesting supplement to the monograph. Moreover, the failure of HOL's first order proof tactic to prove one ‘theorem’ indicates a technical error in the book.

## Keywords

Program Variable Concrete Syntax Weak Precondition Predicate Transformer Deterministic Machine
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.

## Preview

Unable to display preview. Download preview PDF.

## References

- 1.R. Back.
*Correctness Preserving Program Transformations: Proof Theory and Applications*, Volume 131 of*Mathematical Centre Tracts*. Mathematical Centre, Amsterdam, 1980.Google Scholar - 2.R. DeMillo, R. Lipton, and A. Perlis. Social processes and proofs of theorems and programs.
*Communications of the ACM*,**22**, 271–280, 1979.CrossRefGoogle Scholar - 3.E. W. Dijkstra. Trip report visit ETH Zurich, EWD474, 3–4 February 1975. See [8], pp. 95–98.Google Scholar
- 4.E. E. Dijkstra.
*A Discipline of Programming*. Prentice-Hall, 1976.Google Scholar - 5.E. W. Dijkstra. Formal techniques and sizeable programs, EWD563. See [8], pp. 205–214, 1976. Paper prepared for Symposium on the Mathematical Foundations of Computing Science, Gdansk 1976.Google Scholar
- 6.E. W. Dijkstra. A somewhat open letter to EAA or: Why I proved the boundedness of the nondeterminacy in the way I did, EWD614, 1977. See [8], pp. 284–287.Google Scholar
- 7.E. W. Dijkstra. On a political pamphlet from the middle ages.
*ACM SIGSOFT, Software Engineering Notes*,**3**, 14, 1978.CrossRefGoogle Scholar - 8.E. W. Dijkstra (ed.).
*Selected Writings on Computing: A Personal Perspective*. Springer-Verlag, 1982.Google Scholar - 9.M. J. C. Gordon. Mechanizing programming logics in higher order logic. In G. Birtwistle and P. A. Subrahmanyam (eds.),
*Current Trends in Hardware Verification and Automated Theorem Proving*, pp. 387–439. Springer-Verlag, 1989.Google Scholar - 10.J. Grundy. Predicative programming — a survey. In D. BjØrner, M. Broy, and I. V. Pottosin (eds.),
*Formal Methods in Programming and Their Applications: Proceedings of the International Conference*, Volume 735 of*Lecture Notes in Computer Science*, Academgorodok, Novosibirsk, Russia, pp. 8–25. Springer-Verlag, 1993.Google Scholar - 11.W. H. Hesselink.
*Programs, Recursion and Unbounded Choice*, Volume 27 of*Cambridge Tracts in Theoretical Computer Science*. Cambridge University Press, 1992.Google Scholar - 12.J. J. Joyce and C. Seger (eds.).
*Proceedings of the 1993 International Workshop on the HOL theorem proving system and its applications*, Volume 780 of*Lecture Notes in Computer Science*, UBC, Vancouver, Canada. Springer-Verlag, 1993.Google Scholar - 13.D. Syme. Reasoning with the formal definition of Standard ML in HOL. See [12], pp. 43–60.Google Scholar
- 14.M. VanInwegen and E. Gunter. HOL-ML. See [12], pp. 61–74.Google Scholar
- 15.J. von Wright, J. Hekanaho, P. Luostarinen, and T. Långbacka. Mechanizing some advanced refinement concepts.
*Formal Methods in System Design*,**3**, 49–82, 1993.zbMATHCrossRefGoogle Scholar

## Copyright information

© Springer-Verlag Berlin Heidelberg 1998