Reasoning about programs via operational semantics: requirements for a support system
Reasoning about programs using “axioms” is well established; in this paper we argue that reasoning about a program directly in terms of Structural Operational Semantic (SOS) language descriptions is a viable addition and that this is anyway necessary for the vast majority of languages where there is nothing like a full axiomatic description. Using an SOS description is likely to require detailed proofs whose acceptability to users will depend on suitable support systems. The paper presents a very simple example to illustrate how we can reason about (in fact, develop) a program to prove that it satisfies a specification. The main contribution is to use this trivial example to point out issues in designing an interactive proof system for constructing such proofs.
KeywordsStructural operational semantics Proofs about programs Tool support
Unable to display preview. Download preview PDF.
- Bicarregui, J.C., Fitzgerald, J.S., Lindsay, P.A., Moore, R., Ritchie, B.: Proof in VDM: A Practitioner’s Guide. FACIT. Springer, New York (1994). ISBN 3-540-19813-X Google Scholar
- Camilleri, J., Melham, T.: Reasoning with inductively defined relations in the HOL theorem prover. Technical Report 265, Computer Laboratory, University of Cambridge (August 1992). Google Scholar
- Coleman, J.W.: Constructing a tractable reasoning framework upon a fine-grained structural operational semantics. PhD thesis, Newcastle University (January 2008). Google Scholar
- Floyd, R.W.: Assigning meanings to programs. In: Proc. Symp. in Applied Mathematics, vol. 19: Mathematical Aspects of Computer Science, pp. 19–32. American Mathematical Society, Providence (1967) Google Scholar
- King, J.C.: A program verifier. PhD thesis, Department of Computer Science, Carnegie-Mellon University (1969) Google Scholar
- Leavens, G.T., Abrial, J.-R., Batory, D., Butler, M., Coglio, A., Fisler, K., Hehner, E., Jones, C., Miller, D., Peyton-Jones, S., Sitaraman, M., Smith, D.R., Stump, A.: Roadmap for enhanced languages and methods to aid verification. Technical Report 06-21, Iowa State University, Department of Computer Science, Ames, IA (July 2006) Google Scholar
- Lauer, P.E.: Consistent formal theories of the semantics of programming languages. PhD thesis, Queen’s University of Belfast (1971). Printed as TR 25.121, IBM Lab. Vienna Google Scholar
- Lucas, P., Walk, K.: On The Formal Description of PL/I, Annual Review in Automatic Programming, Part 3, vol. 6. Pergamon, Oxford (1969) Google Scholar
- McCarthy, J.: A formal description of a subset of ALGOL. In: Steel, T. (ed.) Formal Language Description Languages for Computer Programing, pp. 1–12. North-Halland, Amsterdam (1966) Google Scholar
- Mehta, F.D.: Proofs for the working engineer. PhD thesis, ETH Zürich (2008) Google Scholar
- Nieto, L.P.: Verification of parallel programs with the Owicki-Gries and rely-guarantee methods in isabelle/HOL. PhD thesis, Institut für Informatic der Technischen Universitaet München (2001) Google Scholar
- Turing, A.M.: Checking a large routine. In: Report of a Conference on High Speed Automatic Calculating Machines, pp. 67–69. University Mathematical Laboratory, Cambridge (June 1949) Google Scholar