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.
Preview
Unable to display preview. Download preview PDF.
References
R. Back. Correctness Preserving Program Transformations: Proof Theory and Applications, Volume 131 of Mathematical Centre Tracts. Mathematical Centre, Amsterdam, 1980.
R. DeMillo, R. Lipton, and A. Perlis. Social processes and proofs of theorems and programs. Communications of the ACM, 22, 271–280, 1979.
E. W. Dijkstra. Trip report visit ETH Zurich, EWD474, 3–4 February 1975. See [8], pp. 95–98.
E. E. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.
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.
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.
E. W. Dijkstra. On a political pamphlet from the middle ages. ACM SIGSOFT, Software Engineering Notes, 3, 14, 1978.
E. W. Dijkstra (ed.). Selected Writings on Computing: A Personal Perspective. Springer-Verlag, 1982.
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.
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.
W. H. Hesselink. Programs, Recursion and Unbounded Choice, Volume 27 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1992.
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.
D. Syme. Reasoning with the formal definition of Standard ML in HOL. See [12], pp. 43–60.
M. VanInwegen and E. Gunter. HOL-ML. See [12], pp. 61–74.
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.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Harrison, J. (1998). Formalizing Dijkstra. In: Grundy, J., Newey, M. (eds) Theorem Proving in Higher Order Logics. TPHOLs 1998. Lecture Notes in Computer Science, vol 1479. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055136
Download citation
DOI: https://doi.org/10.1007/BFb0055136
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64987-8
Online ISBN: 978-3-540-49801-8
eBook Packages: Springer Book Archive