Summary
This paper is a response to a suggestion that the use of history variables in proofs of the correctness of programs is unnecessary. It is argued that the use of history or ghost variables can be of benefit in improving the clarity of some proofs; that without their use some proofs require programming techniques which are at variance with the widely-accepted tenets of structured programming and that for some proofs of correctness their use is unavoidable.
Similar content being viewed by others
References
Apt, K., Francez, N., De Roever, W.P.: A proof system for communicating sequential processes. Technical Report, Dept. of Computer Science, University of Utrecht, (1979)
Clarke, E.M.: Proving correctness of coroutines without history variables. Acta Informat. 13, 169–188 (1980)
Clint, M.: Program proving: coroutines. Acta Informat. 2, 50–63 (1973)
Clint, M.: The specification and verification of a text-editing program. IEEE Trans. Software Engrg. (in press, 1981)
Clint, M., Vicent, C.: The use of ghost variables and virtual programming in the documentation and verification of programs. Software — Practice and Experience (in press, 1981)
Dijkstra, E.W.: A discipline of programming. Englewood Cliffs, New York: Prentice-Hall, 1977
Hoare, C.A.R.: An axiomatic approach to computer programming. Comm. ACM 12, 322–329 (1969)
Hoare, C.A.R.: Communicating sequential processes. Comm. ACM 21, 666–677 (1978)
Katz, S., Manna, Z.: A closer look at termination. Acta Informat. 5, 333–352 (1975)
Manna, Z.: Mathematical theory of computation. New York: McGraw-Hill 1974
Manna, Z.: Logic of programs. Information Processing 30, 41–51 (1980)
Wilkinson, J.H.: Rounding errors in algebraic processes. Notes on Applied Science No. 32. London: HMSO 1963
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Clint, M. On the use of history variables. Acta Informatica 16, 15–30 (1981). https://doi.org/10.1007/BF00289587
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00289587