skip to main content
article
Free Access

Rigorous proofs of program correctness without formal logic

Published:15 March 1995Publication History
Skip Abstract Section

Abstract

Three fundamental principles of static reasoning used to write imperative program code with built-in proof of its correctness are presented and explained in operational terms. It is argued that, although the traditional use of formal logic in the Hoare-Dijkstra-Gries methodology is probably the most efficient way to write code with built-in proofs of correctness, the ideas underlying that methodology are much simpler than commonly perceived through the veil of formal logic and axiomatic semantics. Examples are given illustrating principles and techniques for deriving code from specifications, using the informal reasoning of the mathematician without either the terminology or notation of formal logic.

References

  1. 1 Denman, R., Nauman, D. A., Potter, W., and Richter, G. Derivation of programs for freshmen. SIGCSE Bulletin, 26, 1 (March 1994) 116-120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 Dijkstra, Edsger W. Guarded commands, nondeterminacy and formal derivation of programs. Communications of the ACM, 18, 8 (Aug. 1975), 453-457. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Floyd, Robert W. Assigning meanings to programs. Proceedings of the AMS Symposia in Applied Mathematics, Vol. 19 (1967) 19-31.Google ScholarGoogle ScholarCross RefCross Ref
  4. 4 Gries, David The Science of Programming. Springer-Verlag, New York, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 Hoare, C. A. R. An axiomatic basis for computer programming. Communications of the ACM 12, 10 (Oct. 1969), 576-583. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Lau, K., Bush. V. J., and Jinks, P.J. Towards an introductory formal programming course. SIGCSE Bulletin, 26, 1 (March 1994) 121-125. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 Wadkins, J. R. Jefferson. Program control as a set-theoretic concept (RR-94-56). Educational Testing Service, Princeton, N.J. 1994.Google ScholarGoogle Scholar

Index Terms

  1. Rigorous proofs of program correctness without formal logic

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM SIGCSE Bulletin
            ACM SIGCSE Bulletin  Volume 27, Issue 1
            March 1995
            402 pages
            ISSN:0097-8418
            DOI:10.1145/199691
            Issue’s Table of Contents
            • cover image ACM Conferences
              SIGCSE '95: Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education
              March 1995
              436 pages
              ISBN:089791693X
              DOI:10.1145/199688
              • Chairman:
              • Cary Laxer,
              • Editors:
              • Curt M. White,
              • James E. Miller,
              • Judy Gersting

            Copyright © 1995 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 15 March 1995

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!