Acta Informatica

, Volume 10, Issue 1, pp 1–26 | Cite as

Proof rules for the programming language Euclid

  • R. L. London
  • J. V. Guttag
  • J. J. Horning
  • B. W. Lampson
  • J. G. Mitchell
  • G. J. Popek


In the spirit of the previous axiomatixation of the programming language Pascal, this paper describes Hoare-style proof rules for Euclid, a programming language intended for the expression of system programs which are to be verified. All constructs of Euclid are covered except for storage allocation and machine dependencies.


Information System Operating System Data Structure Communication Network Information Theory 
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.
    Clarke, E.M. Jr.: Programming language constructs for which it is impossible to obtain good Hoare-like axiom systems. Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, pp. 10–20. New York: ACM 1977Google Scholar
  2. 2.
    Donahue, J.E.: Complementary definitions of programming language semantics. In: Lecture Notes in Computer Science, Vol. 42. Berlin-Heidelberg-New York: Springer 1976Google Scholar
  3. 3.
    Ernst, G.W.: Rules of inference for procedure calls. Acta Informat. 8, 145–152 (1977)Google Scholar
  4. 4.
    Guttag, J.V., Horning, J.J., London, R.L.: A proof rule for Euclid procedures. In: Formal Description of Programming Concepts (E. Neuhold, ed.), pp. 211–220. Amsterdam-New YorkOxford: North-Holland 1978. Also USC Information Sciences Institute, Technical Report ISI/RR-77-60, May 1977Google Scholar
  5. 5.
    Guttag, J.V., Horowitz, E., Musser, D.R.: Abstract data types and software validation. Comm. ACM (to appear). Also: USC Information Sciences Institute, Technical Report ISI/RR-76-48, August 1976Google Scholar
  6. 6.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Comm. ACM 12, 576–580, 583 (1969)Google Scholar
  7. 7.
    Hoare, C.A.R.: Procedures and parameters: An axiomatic approach. In: Symposium on Semantics of Algorithmic Languages (E. Engeler, ed.), Lecture Notes in Mathematics, Vol. 188, pp. 102–116. Berlin-Heidelberg-New York: Springer 1971Google Scholar
  8. 8.
    Hoare, C.A.R.: Proof of correctness of data representations. Acta Informat. 1, 271–281 (1972)Google Scholar
  9. 9.
    Hoare, C.A.R., Wirth, N.: An axiomatic definition of the programming language PASCAL. Acta Informat. 2, 335–355 (1973)Google Scholar
  10. 10.
    Jensen, K., Wirth, N.: PASCAL user manual and report. Lecture Notes in Computer Science, Vol. 18, 2nd ed. Berlin-Heidelberg-New York: Springer 1975Google Scholar
  11. 11.
    Lampson, B.W., Horning, J.J., London, R.L., Mitchell, J.G., Popek, G.J.: Revised report on the programming language Euclid. Xerox Research Center, Technical Report CSL 78-2, 1978. An earlier version appeared in: SIGPLAN Notices 12, No. 2 (February 1977)Google Scholar
  12. 12.
    Musser, D.R.: A proof rule for functions. USC Information Sciences Institute, Technical Report ISI/RR-77-62, October 1977Google Scholar
  13. 13.
    Popek, G.J., Horning, J.J., Lampson, B.W., Mitchell, J.G., London, R.L.: Notes on the design of Euclid. Proceedings of an ACM Conference on Language Design for Reliable Software, Raleigh, North Carolina. SIGPLAN Notices 12, No. 3, 11–18 (1977)Google Scholar
  14. 14.
    Spitzen, J., Wegbreit, B.: The verification and synthesis of data structures. Acta Informat. 4, 127–144 (1975)Google Scholar
  15. 15.
    Wirth, N.: The programming language PASCAL. Acta Informat. 1, 35–63 (1971)Google Scholar

Copyright information

© Springer-Verlag 1978

Authors and Affiliations

  • R. L. London
    • 1
  • J. V. Guttag
    • 2
  • J. J. Horning
    • 3
  • B. W. Lampson
    • 4
  • J. G. Mitchell
    • 4
  • G. J. Popek
    • 5
  1. 1.USC Information Sciences InstituteMarina del ReyUSA
  2. 2.Computer Science Dept.University of Southern CaliforniaLos AngelesUSA
  3. 3.Computer Systems Research GroupUniversity of TorontoTorontoCanada
  4. 4.Xerox Research CenterPalo AltoUSA
  5. 5.3532 Boelter Hall, Computer Science Dept.University of CaliforniaLos AngelesUSA

Personalised recommendations