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.
KeywordsProgram Variable Concrete Syntax Weak Precondition Predicate Transformer Deterministic Machine
Unable to display preview. Download preview PDF.
- 1.R. Back. Correctness Preserving Program Transformations: Proof Theory and Applications, Volume 131 of Mathematical Centre Tracts. Mathematical Centre, Amsterdam, 1980.Google Scholar
- 3.E. W. Dijkstra. Trip report visit ETH Zurich, EWD474, 3–4 February 1975. See , 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 , 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 , pp. 284–287.Google 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 , pp. 43–60.Google Scholar
- 14.M. VanInwegen and E. Gunter. HOL-ML. See , pp. 61–74.Google Scholar