Skip to main content
Log in

Reasoning about programs via operational semantics: requirements for a support system

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Abrial, J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)

    MATH  Google Scholar 

  • 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).

  • Coleman, J.W.: Constructing a tractable reasoning framework upon a fine-grained structural operational semantics. PhD thesis, Newcastle University (January 2008).

  • Dijkstra, E.W., Scholten, C.S.: Predicate Calculus and Program Semantics. Springer, New York (1990). ISBN 0-387-96957-8, 3-540-96957-8

    MATH  Google Scholar 

  • Donahue, J.E.: Complementary Definitions of Programming Language Semantics. Lecture Notes in Computer Science, vol. 42. Springer, New York (1976)

    MATH  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 

  • Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580, 583 (1969)

    Article  MATH  Google Scholar 

  • Hoare, C.A.R.: Proof of a program: FIND. Commun. ACM 14, 39–45 (1971)

    MATH  MathSciNet  Google Scholar 

  • Hoare, C.A.R., Wirth, N.: An axiomatic definition of the programming language Pascal. Acta Inf. 2, 335–355 (1973)

    Article  Google Scholar 

  • Holt, R.C., Matthews, P.A., Rosselet, J.A., Cordy, J.R.: The Turing Programming Language: Design and Definition. Prentice-Hall International, Englewood Cliffs (1988)

    MATH  Google Scholar 

  • Jones, C.B.: Constructing a theory of a data structure as an aid to program development. Acta Inf. 11, 119–137 (1979)

    MATH  Google Scholar 

  • Jones, C.B.: Software Development: A Rigorous Approach. Prentice-Hall International, Englewood Cliffs (1980)

    MATH  Google Scholar 

  • Jones, C.B.: Systematic Software Development using VDM, 2nd edn. Prentice-Hall International, Englewood Cliffs (1990)

    MATH  Google Scholar 

  • Jones, C.B.: The early search for tractable ways of reasoning about programs. IEEE, Ann. History Comput. 25(2), 26–49 (2003a)

    Article  Google Scholar 

  • Jones, C.B.: Operational semantics: concepts and their expression. Inf. Process. Lett. 88(1–2), 27–32 (2003b)

    Article  Google Scholar 

  • Jones, C.B.: Understanding programming language concepts via operational semantics. In: George, C., Liu, Z., Woodcock, J. (eds.) Domain Modeling and the Duration Calculus. Lecture Notes in Computer Science, vol. 4710, pp. 177–235. Springer, New York (2007)

    Chapter  Google Scholar 

  • Jones, C.B., Jones, K.D., Lindsay, P.A., Moore, R.: mural: A Formal Development Support System. Springer, New York (1991)

    MATH  Google Scholar 

  • King, J.C.: A program verifier. PhD thesis, Department of Computer Science, Carnegie-Mellon University (1969)

  • Klein, G., Nipkow, T.: Verified bytecode verifiers. Theor. Comput. Sci. 298(3), 583–626 (2003)

    Article  MATH  MathSciNet  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)

  • 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

  • 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)

  • Plotkin, G.D.: The origins of structural operational semantics. J. Log. Algebraic Program. 60–61, 3–15 (2004)

    Article  MathSciNet  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)

  • 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)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Cliff B. Jones.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Hughes, J.R.D., Jones, C.B. Reasoning about programs via operational semantics: requirements for a support system. Autom Softw Eng 15, 299–312 (2008). https://doi.org/10.1007/s10515-008-0036-6

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10515-008-0036-6

Keywords

Navigation