Skip to main content

Semantically based axiomatics

  • Part IV Domain Theory And Theoretical Computation
  • Conference paper
  • First Online:
Book cover Mathematical Foundations of Programming Language Semantics (MFPS 1987)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 298))

  • 177 Accesses

Abstract

This paper discusses some fundamental issues related to the construction of semantically based axiomatic proof systems for reasoning about program behavior. We survey foundational work in this area, especially early work of Hoare and Cook on while-programs, and we try to pinpoint the principal ideas contained in this work and to suggest criteria for an appropriate generalization (faithful to these ideas) to a wider variety of programming languages. We argue that the adoption of a mathematically clean semantic model should lead to a natural choice of assertion language(s) for expressing properties of program terms, and to syntax-directed proof systems with clear and simple rules for program constructs. Hoare's ideas suggest that in principle syntax-directed reasoning is possible for all syntactic categories (declarations, commands, even expressions) and all semantic attributes (partial correctness of commands, aliasing properties of declarations, L- or R-values of expressions, proper use of variables, and so on). Semantic insights may also influence assertion language design by suggesting the need for certain logical connectives at the assertion level. This point is obscured by the fact that Hoare's logic for while-programs needed no assertion connectives (although of course the usual logical connectives are permitted inside pre- and post-conditions), but an application of our method to a class of parallel programming languages brings out the idea well: semantic analysis suggests the use of conjunctions at the assertion level. We argue that this method can lead to proof systems which avoid certain inelegant features of some earlier systems: specifically, we avoid the need for “extralogical” and “non-compositional” notions such as interference checks and auxiliary variables. We also discuss the author's applications of these techniques to other programming languages, and point to some future research directions continuing this work. Although we do not have a completely satisfactory general theory of semantically based axiomatization, and consequently some of our techniques may seem rather ad hoc to the reader, we hope that our ideas have some merit.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abramsky, S., Domain Theory in Logical Form, Proc. Symposium on Logic in Computer Science, Ithaca, NY, IEEE Computer Society Press (1987) 47–53.

    Google Scholar 

  2. Apt, K. R., Ten Years of Hoare's Logic: A Survey, ACM TOPLAS, Vol. 3 (1981) 431–483.

    Article  Google Scholar 

  3. Apt, K. R., Bergstra, J. A., and Meertens, G. L. T., Recursive Assertions are not enough—or are they?, TCS 8 (1979) 73–87.

    Article  Google Scholar 

  4. de Bakker, J. W., Mathematical Theory of Program Correctness, Prentice-Hall (1980).

    Google Scholar 

  5. Boehm, H.-J., Side-effects and Aliasing can have Simple Axiomatic Descriptions, ACM TOPLAS, vol. 7, no. 4 (1985) 637–655.

    Article  Google Scholar 

  6. Brookes, S. D., An Axiomatic Treatment of a Parallel Language, Proc. Symposium on Logics of Programs, Springer LNCS 193 (1985) 41–60.

    Google Scholar 

  7. Brookes, S. D., A Semantically Based Proof System for Deadlock and Partial Correctness in CSP, Proc. Symposium on Logic in Computer Science, IEEE Computer Society Press (1986) 58–65.

    Google Scholar 

  8. Brookes, S. D., A Fully Abstract Semantics and a Proof System for an ALGOL-like Language with Aliasing, Proc. Conference on Mathematical Foundations of Programming Semantics, Manhattan, Kansas, Springer LNCS 239 (1985) 59–100.

    Google Scholar 

  9. Clarke, E. M., The Characterization Problem for Hoare's Logic, in: Mathematical Logic and Programming Languages, eds. C. A. R. Hoare and J. C. Shepherdson, Prentice-Hall (1986) 89–103.

    Google Scholar 

  10. Clarke, E. M., Programming Language Constructs For Which It Is Impossible To Obtain Good Hoare Axiom Systems, JACM Vol. 26 No. 1 (January 1979) 129–147.

    Article  Google Scholar 

  11. Cook, S., Soundness and Completeness of an Axiom System for Program Verification, SIAM J. Comput 7 (1978) 70–90.

    Article  Google Scholar 

  12. Dijkstra, E. W., A Discipline of Programming, Prentice-Hall (1976).

    Google Scholar 

  13. Floyd, R., Assigning Meanings to Programs, in: J. T. Schwartz, ed., Mathematical Aspects of Computer Science, Proc. Symp. Applied Math. (American Math. Soc. Providence) Vol. 19 (1967) 19–32.

    Google Scholar 

  14. Hoare, C. A. R., An Axiomatic Basis for Computer Programming, CACM 12 (1969) 576–580).

    Google Scholar 

  15. Hennessy, M. C. B., and Plotkin, G. D., Full Abstraction for a Simple Parallel Language, Proc. MFCS 1979, Springer LNCS 74 (1979) 108–120.

    Google Scholar 

  16. Milner, R., A Calculus of Communicating Systems, Springer LNCS 92 (1980).

    Google Scholar 

  17. Milner, R., Fully Abstract Models of Typed Lambda-Calculi, Theoretical Computer Science vol. 4 no. 1 (1977) 1–22.

    Article  Google Scholar 

  18. O'Donnell, M., A Critique of the Foundations of Hoare-style Programming Logic, CACM vol. 25 no. 12 (December 1982) 927–934

    Google Scholar 

  19. Owicki, S. S., Axiomatic proof techniques for parallel programming, Ph.D. thesis, Cornell University (1975).

    Google Scholar 

  20. Owicki, S. S., and Gries, D., An Axiomatic Proof Technique for Parallel Programs, Acta Informatica 6 (1976) 319–340.

    Article  Google Scholar 

  21. Robinson, E., Axiomatic Aspects of Denotational Semantics, preprint, Cambridge University (1986).

    Google Scholar 

  22. Stirling, C., A Compositional Reformulation of Owicki-Gries's Partial Correctness Logic for a Concurrent While Language, Proc. ICALP 1986, Springer LNCS 226 (1986) 407–415.

    Google Scholar 

  23. Stoughton, A., Fully Abstract Models of Programming Languages, Ph. D. thesis, Department of Computer Science, Edinburgh University (1986).

    Google Scholar 

  24. Stoy, J., Denotational Semantics, MIT Press (1977).

    Google Scholar 

  25. Strachey, C., The Varieties of Programming Language, Proceedings of International Computing Symposium, Cini Foundation, Venice (1972) 222–233.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

M. Main A. Melton M. Mislove D. Schmidt

Rights and permissions

Reprints and permissions

Copyright information

© 1988 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Brookes, S.D. (1988). Semantically based axiomatics. In: Main, M., Melton, A., Mislove, M., Schmidt, D. (eds) Mathematical Foundations of Programming Language Semantics. MFPS 1987. Lecture Notes in Computer Science, vol 298. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-19020-1_16

Download citation

  • DOI: https://doi.org/10.1007/3-540-19020-1_16

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-19020-2

  • Online ISBN: 978-3-540-38920-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics