Semantically based axiomatics

  • Stephen D. Brookes
Part IV Domain Theory And Theoretical Computation
Part of the Lecture Notes in Computer Science book series (LNCS, volume 298)


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.


Semantic Model Proof System Condition Language Atomic Action Logical Connective 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [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. [2]
    Apt, K. R., Ten Years of Hoare's Logic: A Survey, ACM TOPLAS, Vol. 3 (1981) 431–483.CrossRefGoogle Scholar
  3. [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.CrossRefGoogle Scholar
  4. [4]
    de Bakker, J. W., Mathematical Theory of Program Correctness, Prentice-Hall (1980).Google Scholar
  5. [5]
    Boehm, H.-J., Side-effects and Aliasing can have Simple Axiomatic Descriptions, ACM TOPLAS, vol. 7, no. 4 (1985) 637–655.CrossRefGoogle Scholar
  6. [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. [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. [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. [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. [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.CrossRefGoogle Scholar
  11. [11]
    Cook, S., Soundness and Completeness of an Axiom System for Program Verification, SIAM J. Comput 7 (1978) 70–90.CrossRefGoogle Scholar
  12. [12]
    Dijkstra, E. W., A Discipline of Programming, Prentice-Hall (1976).Google Scholar
  13. [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. [14]
    Hoare, C. A. R., An Axiomatic Basis for Computer Programming, CACM 12 (1969) 576–580).Google Scholar
  15. [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. [16]
    Milner, R., A Calculus of Communicating Systems, Springer LNCS 92 (1980).Google Scholar
  17. [17]
    Milner, R., Fully Abstract Models of Typed Lambda-Calculi, Theoretical Computer Science vol. 4 no. 1 (1977) 1–22.CrossRefGoogle Scholar
  18. [18]
    O'Donnell, M., A Critique of the Foundations of Hoare-style Programming Logic, CACM vol. 25 no. 12 (December 1982) 927–934Google Scholar
  19. [19]
    Owicki, S. S., Axiomatic proof techniques for parallel programming, Ph.D. thesis, Cornell University (1975).Google Scholar
  20. [20]
    Owicki, S. S., and Gries, D., An Axiomatic Proof Technique for Parallel Programs, Acta Informatica 6 (1976) 319–340.CrossRefGoogle Scholar
  21. [21]
    Robinson, E., Axiomatic Aspects of Denotational Semantics, preprint, Cambridge University (1986).Google Scholar
  22. [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. [23]
    Stoughton, A., Fully Abstract Models of Programming Languages, Ph. D. thesis, Department of Computer Science, Edinburgh University (1986).Google Scholar
  24. [24]
    Stoy, J., Denotational Semantics, MIT Press (1977).Google Scholar
  25. [25]
    Strachey, C., The Varieties of Programming Language, Proceedings of International Computing Symposium, Cini Foundation, Venice (1972) 222–233.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Stephen D. Brookes
    • 1
  1. 1.Department of Computer ScienceCarnegie-Mellon UniversityPittsburgh

Personalised recommendations