Skip to main content
Log in

Automatic program verification I: A logical basis and its implementation

  • Published:
Acta Informatica Aims and scope Submit manuscript

Summary

Defining the semantics of programming languages by axioms and rules of inference yields a deduction system within which proofs may be given that programs satisfy specifications. The deduction system herein is shown to be consistent and also deduction complete with respect to Hoare's system. A subgoaler for the deduction system is described whose input is a significant subset of Pascal programs plus inductive assertions. The output is a set of verification conditions or lemmas to be proved. Several non-trivial arithmetic and sorting programs have been shown to satisfy specifications by using an interactive theorem prover to automatically generate proofs of the verification conditions. Additional components for a more powerful verification system are under construction.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Allen, J. R., Luckham, D.: An interactive theorem-proving program. In: Meltzer, B., Michie, D. (eds.): Machine Intelligence 5. Edinburgh: Edinburgh University Press 1970, p. 321–336

    Google Scholar 

  2. Clint, M., Hoare, C. A. R.: Program proving: Jumps and functions. Acta Informatica 1, 214–224 (1972)

    Google Scholar 

  3. Floyd, R. W.: Algorithm 245, TREESORT 3. Comm. ACM 7, 701 (1964)

    Google Scholar 

  4. Floyd, R. W.: Assigning meanings to programs. In: Schwartz, J. T. (ed.). Mathematical aspects of computer science. Proc. Symposia in Applied Mathematics 19. Providence (R.I.): Am. Math. Soc. 1967, p. 19–32

  5. Floyd, R. W.: Toward interactive design of correct programs. Proc. IFIP Congress 71, Amsterdam: North-Holland 1972, p. 7–10

    Google Scholar 

  6. Hoare, C. A. R.: An axiomatic basis for computer programming. Comm. ACM 12, 576–580, 583 (1969)

    Google Scholar 

  7. Hoare, C. A. R.: Procedures and parameters: An axiomatic approach. In: Engeler, E. (ed.): Symposium on semantics of algorithmic languages. Lecture Notes in Mathematics 188. Berlin-Heidelberg-New York: Springer 1971, p. 102–116

  8. Hoare, C. A. R.: Proof of a program: FIND. Comm. ACM 14, 39–45 (1971)

    Google Scholar 

  9. Hoare, C. A. R., Wirth, N.: An axiomatic definition of the programming language Pascal. Acta Informatica 2, 335–355 (1973)

    Google Scholar 

  10. King, J. C.: A program verifier. Carnegie-Mellon University, Pittsburgh (Pa.). Ph.D. Thesis 1969. See also: Proc. IFIP Congress 71. Amsterdam: North-Holland 1972, p. 234–249

    Google Scholar 

  11. London, R. L.: The current state of proving programs correct. Proc. of ACM Annual Conference, 1972. New York: ACM, p. 39–46

    Google Scholar 

  12. McCarthy, J., Painter, J. A.: Correctness of a compiler for arithmetic expressions. In: Schwartz, J. T. (ed.): Mathematical aspects of computer science. Proc. Symposia in Applied Mathematics 19. Providence(R.I.): Am.Math. Soc.1967, p.33–41

  13. Smith, D. C., Enea, H. J.: MLISP2. Stanford University Artificial Intelligence Memo AIM-195, April 1973

  14. Wirth, N.: The programming language Pascal. Acta Informatica 1, 35–63 (1971)

    Google Scholar 

  15. Wirth, N.: The programming language Pascal (Revised Report). Berichte der Fachgruppe Computer-Wissenschaften Nr. 5, E.T. H., Zürich, November 1972

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This research is supported by the Advanced Research Projects Agency under Contracts SD-183 and DAHC 15-72-C-0308, and by the National Aeronautics and Space Administration under Contract NSR 05-020-500.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Igarashi, S., London, R.L. & Luckham, D.C. Automatic program verification I: A logical basis and its implementation. Acta Informatica 4, 145–182 (1975). https://doi.org/10.1007/BF00288746

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00288746

Keywords

Navigation