Skip to main content
Log in

Formal Foundations of Operational Semantics

  • Published:
Higher-Order and Symbolic Computation

Abstract

In this paper we report on the results of a sophisticated and substantial use of PVS to establish a recent result in operational semantics. The result we establish is a context lemma for operational equivalence for very wide class of programming languages, known as the CIU theorem. The proof uses the annotated holes technique to represent contexts and compute with them. Thus this paper demonstrates that that it is possible to use PVS as a tool in the development of modern operational techniques, and a productive tool at that. The process of formalizing the CIU theorem revealed several gaps in published proof. The proof of the CIU theorem in PVS took approximately six months to develop. The actual machine checked proof involves the proving of around one thousand facts, and takes PVS slightly less than three hours of CPU time running on a Linux machine configured with 2 GBytes of main memory and four 550 MHz Xeon PIII processors.

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

  1. Butler, R.W., Dutertre, B., Jamsek, D., Owre, S., and Griffioen, D. PVS finite set library, 1997. Available at http://pvs.csl.sri.com/pvs/libraries/finite sets.dmp.

  2. Crow, J., Owre, S., Rushby, J., Shankar, N., and Srivas, M. A tutorial introduction to PVS. Technical report, SRI International, 1995. Presented at WIFT’ 95:Workshop on Industrial-StrengthFormal Specification Techniques, Boca Raton, Florida.

    Google Scholar 

  3. Felleisen, M. and Friedman, D.P. Control operators, the SECD-machine, and the λ-calculus. In Formal Description of Programming Concepts III, M. Wirsing (Ed.). North-Holland, 1986, pp. 193–217.

  4. Felleisen, M. and Hieb, R. The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science, 103 (1992) 235–271.

    Google Scholar 

  5. Ford, J. The Church-Rosser theorem in PVS, 2000. PVS dump file (2.4 Megabytes) available at http://mcs.une.edu.au/~pvs/.

  6. Ford, J. The CIU theorem in PVS, 2000. PVS dump file (approximately 17 Megabytes) available at http://mcs.une.edu.au/~pvs/.

  7. Ford, J. and Mason, I.A. Establishing a general context lemma in PVS. In Proceedings of the 2nd Australasian Workshop on Computational Logic, AWCL'01, G. Antoniou and G. Governatori (Eds.). 2001, pp. 75–91. Available as postscript from http://mcs.une.edu.au/~iam/Data/Papers/01awcl.ps.

  8. Ford, J. and Mason, I.A. Operational techniques in PVS—A preliminary evaluation. In Proceedings of the Australasian Theory Symposium, CATS'01, C.J. Fidge (Ed.). Vol. 42 of Electronic Notes in Theoretical Computer Science. Elsevier Science, 2001, pp. 124–142. Available as postscript from http://mcs.une.edu.au/~iam/Data/Papers/01cats.ps.

  9. Ford, J., Mason, I.A., and Shankar, N. Lessons learned from formal developments in PVS, 2002. Presented at LICS'02 (within FLoC'02), Copenhagen.

  10. Ford, J. and Shankar, N. Verifying shostak. In The Proceedings of CADE-18 (within FLoC'02), Copenhagen, 2002.

  11. Honsell, F., Mason, I.A., Smith, S.F., and Talcott, C.L. A variable typed logic of effects. Information and Computation, 119(1) (1995) 55–90.

    Google Scholar 

  12. Knuth, D.E. The T EXbook. Addison-Wesley, 1984.

  13. Landin, P.J. The mechanical evaluation of expressions. Computer Journal, 6 (1964) 308–320.

    Google Scholar 

  14. Landin, P.J. The next 700 programming languages. Comm. ACM, 9 (1966) 157–166.

    Google Scholar 

  15. Mason, I.A. Computing with contexts. Higher-Order and Symbolic Computation, 12 (1999) 171–201.

    Google Scholar 

  16. Mason, I.A., Smith, S.F., and Talcott, C.L. From operational semantics to domain theory. Information and Computation, 128(1) (1996) 26–47.

    Google Scholar 

  17. Mason, I.A. and Talcott, C.L. Programming, transforming, and proving with function abstractions and memories. In Proceedings of the 16th EATCS Colloquium on Automata, Languages, and Programming, Stresa, Vol. 372 of Lecture Notes in Computer Science, Springer-Verlag, 1989, pp. 574–588.

  18. Mason, I.A. and Talcott, C.L. Equivalence in functional languages with effects. Journal of Functional Programming, 1 (1991) 287–327.

    Google Scholar 

  19. Mason, I.A. and Talcott, C.L. Feferman-Landin logic. In Reflections—A Symposium Honoring Solomon Feferman on his 70th Birthday, W. Sieg, R. Sommer, and C. Talcott (Eds.). Lecture Notes in Logic, 2001.

  20. McKinna, J. and Pollack, R. Pure type systems formalized. In Typed Lambda Calculi and Applications, M. Bezem and J.F. Groote (Eds.). Vol. 664 of Lecture Notes in Computer Science, Springer Verlag, 1993, pp. 289–305.

  21. McKinna, J. and Pollack, R. Some lambda calculus and type theory formalized. Journal of Automated Reasoning, 23 (1999). An abridged version appeared as [20].

  22. Milner, R. Fully abstract models of typed λ-calculi. Theoretical Computer Science, 4 (1977) 1–22.

    Google Scholar 

  23. Morris, J.H. Lambda Calculus Models of Programming Languages. Ph.D. thesis, Massachusetts Institute of Technology, 1968.

  24. Plotkin, G. Call-by-name, call-by-value and the lambda calculus. Theoretical Computer Science, 1 (1975) 125–159.

    Google Scholar 

  25. Shankar, N. Personal communication, July 2000.

  26. Talcott, C.L. Reasoning about functions with effects. In Higher Order Operational Techniques in Semantics. Cambridge University Press, 1996.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ford, J., Mason, I.A. Formal Foundations of Operational Semantics. Higher-Order and Symbolic Computation 16, 161–202 (2003). https://doi.org/10.1023/A:1025689206562

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1025689206562

Navigation