Abstract
Traditionally, program verification systems have inadequately supported the incremental aspects of designing and verifying programs. For example, they provide only minimal assistance in determining what previous work is affected by changes to specifications. Problems of this general nature arise frequently and pose difficult challenges for the user. This paper describes and illustrates how several such problems have been largely overcome by a recently developed program verification system.
The illustration takes the form of a transcript from a working session in which a realistic message switching network is specified, implemented, and proved. The network allows a fixed number of users to communicate through a multilevel secure network. The basic interprocess communication paradigm is message passing (rather than shared memory). Roughly speaking, the specification of the network says that the mail received by each user process is a subsequence of the mail intended for it. This functional property is expressed as a hierarchically structured assertion about histories of message traffic among processes. The example is intended to be prototypical of how one could go about the more complicated task of structuring and formally specifying functional properties of real communications processing systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
A.L. Ambler, D.I. Good, J.C. Browne, W.F. Burger, R.M. Cohen, C.G. Hoch, and R.E. Wells. Gypsy: A language for specification and implementation of verifiable programs. Proceedings of the Fifth International Conference on Language Design for Reliable Software, SIGPLAN Notices, Vol. 12, No. 3, pp. 1–10, March 1977.
W.W. Bledsoe. A new method for proving certain Presburger formulas. Advance Papers of the Fourth International Joint Conference on Artificial Intelligence, 1975, pp. 15–21.
W.W. Bledsoe and M. Tyson. The UT interactive prover. University of Texas at Austin Mathematics Department, ATP-17, May 1975.
R.S. Boyer and J S. Moore. A Computational Logic. Academic Press, 1979.
L.P. Deutsch. An interactive program verifier. Ph.D. thesis, University of California-Berkeley, 1973 (Xerox Palo Alto Research Center Report CSL-73–1, May 1973)
B. Elspas, R.E. Shostak, and J.M. Spitzen. A verification system for Jocit/J3 programs (Rugged Programming Environment — RPE/2). SRI International Computer Science Laboratory Report, April 1977.
R.W. Floyd. Assigning meanings to programs, in Proceedings of a Symposium in Applied Mathematics, vol. 19, J.T. Schwartz, ed., American Mathematical Society, pp. 19–32, 1967.
S.L. Gerhart and D.S. Wile. Preliminary report on the Delta Experiment: Specification and verification of a multiple-user file updating module. Proceedings of Conference on Specifications of Reliable Software, April 1979, pp. 198–211.
D.I. Good, R.L. London, and W.W. Bledsoe. An interactive program verification system. IEEE Transactions on Software Engineering, Vol. SE-1, No. 1, pp. 59–67, March 1975.
D.I. Good, R.M. Cohen, and J. Keeton-Williams. Principles of proving concurrent programs in Gypsy. Sixth Annual ACM Symposium on Principles of Programmming Languages, January 1979, pp. 42–51.
C.A.R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, vol. 12, no. 10, pp. 576–580, October 1969.
J.C. King. A program verifier. Ph.D. thesis, Carnegie-Mellon University, 1969.
D.C. Luckham. Program verification and verification-oriented programming. Proceedings of IFIP Congress 77, North-Holland Publishing Co., pp. 783–793, 1977.
M.S. Moriconi. A system for incrementally designing and verifying programs. Ph.D. thesis, The University of Texas at Austin, December 1977 (Volume I, SRI International Computer Science Laboratory Report CSL-73).
M.S. Moriconi. A system for incrementally designing and verifying programs. (Volume II, SRI International Computer Science Laboratory Report CSL-74)
M.S. Moriconi. A designer/verifier’s assistant. IEEE Transactions on Software Engineering, Vol. SE-5, No. 4, pp. 387–401, July 1979.
L. Roberts and B. Wessler. Computer Networks to Achieve Resource Sharing. Proceedings of the AFIPS Spring Joint Computer Conference, Vol. 36, American Federation of Information Processing Societies, Montvale, New Jersey, 1970, pp. 543–549.
N. Suzuki. Verifying programs by algebraic and logical reduction. Proceedings of International Conferences on Reliable Software, pp. 473–481, April 1975.
R.E. Wells. Specification and Implementation of a Verifiable Communications System. M.S. thesis, The University of Texas at Austin, December 1976.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1980 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Moriconi, M. (1980). Interactive Design and Verification: A Message Switching Network Example. In: Berg, H.K., Giloi, W.K. (eds) The Use of Formal Specification of Software. Informatik-Fachberichte, vol 36. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-67881-3_8
Download citation
DOI: https://doi.org/10.1007/978-3-642-67881-3_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-10442-1
Online ISBN: 978-3-642-67881-3
eBook Packages: Springer Book Archive