ACM Home Page
Please provide us with feedback. Feedback
Is “sometime” sometimes better than “always”?: intermittent assertions in proving program correctness
Full text PdfPdf (1.35 MB)
Source
Communications of the ACM archive
Volume 21 ,  Issue 2  (February 1978) table of contents
Pages: 159 - 172  
Year of Publication: 1978
ISSN:0001-0782
Authors
Zohar Manna  Stanford Univ., Stanford, CA
Richard Waldinger  SRI International, Menlo Park, CA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 20,   Citation Count: 12
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/359340.359353
What is a DOI?

ABSTRACT

This paper explores a technique for proving the correctness and termination of programs simultaneously. This approach, the intermittent-assertion method, involves documenting the program with assertions that must be true at some time when control passes through the corresponding point, but that need not be true every time. The method, introduced by Burstall, promises to provide a valuable complement to the more conventional methods. The intermittent-assertion method is presented with a number of examples of correctness and termination proofs. Some of these proofs are markedly simpler than their conventional counterparts. On the other hand, it is shown that a proof of correctness or termination by any of the conventional techniques can be rephrased directly as a proof using intermittent assertions. Finally, it is shown how the intermittent-assertion method can be applied to prove the validity of program transformations and the correctness of continuously operating programs.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Ashcroft, E.A., and Wadge, W.W. Intermittent-assertion proofs in Lucid. Information Processing 77, North-Holland Pub. Co., Amsterdam, 1977, pp. 723-726.
 
2
Burstall, R.M. Program proving as hand simulation with a little induction. Information Processing 74, North-Holland Pub. Co., Amsterdam, 1974, pp. 308-312.
3
 
4
Floyd, R.W. Assigning meaning to programs. Proc. Symp. in Applied Math. Vol. 19, J.T. Schwartz, Ed., Amer. Math. Soc., Providence, R.I., 1967, pp. 19-32.
 
5
Francez, N., and Pnueli, A. A proof method for cyclic programs. To appear in Acta Informatica.
6
7
 
8
Katz, S.M., and Manna, Z. A closer look at termination. Acta Informatica 5 (Dec. 1975), 333-352.
 
9
10
11
 
12
Manna, Z. Mathematical theory of partial correctness. J. Comptr. Syst. Sci. 5, 3 (June 1971), 239-253.
 
13
14
 
15
Pratt, V.R. Semantical considerations on Floyd-Hoare logic. Proc. 17th Symp. on Foundations of Comptr. Sci., Houston, Tex., Oct. 1976, pp. 109-121.
 
16
Schwarz, J. Event-based reasoning-a system for proving correct termination of programs. Proc. Third Int. Colloquium on Automata, Languages and Programming, Edinburgh, Scotland, July 1976, pp. 131-146.
 
17
Topor, R.W. A simple proof of the Schorr-Waite garbage collection algorithm. To appear in Acta Informatica.
 
18
Wang, A. An axiomatic basis for proving total correctness of goto-programs. BIT 16 (1976), 88-102.

CITED BY  12

Collaborative Colleagues:
Zohar Manna: colleagues
Richard Waldinger: colleagues