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.
Similar content being viewed by others
References
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.
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.
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.
Felleisen, M. and Hieb, R. The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science, 103 (1992) 235–271.
Ford, J. The Church-Rosser theorem in PVS, 2000. PVS dump file (2.4 Megabytes) available at http://mcs.une.edu.au/~pvs/.
Ford, J. The CIU theorem in PVS, 2000. PVS dump file (approximately 17 Megabytes) available at http://mcs.une.edu.au/~pvs/.
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.
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.
Ford, J., Mason, I.A., and Shankar, N. Lessons learned from formal developments in PVS, 2002. Presented at LICS'02 (within FLoC'02), Copenhagen.
Ford, J. and Shankar, N. Verifying shostak. In The Proceedings of CADE-18 (within FLoC'02), Copenhagen, 2002.
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.
Knuth, D.E. The T EXbook. Addison-Wesley, 1984.
Landin, P.J. The mechanical evaluation of expressions. Computer Journal, 6 (1964) 308–320.
Landin, P.J. The next 700 programming languages. Comm. ACM, 9 (1966) 157–166.
Mason, I.A. Computing with contexts. Higher-Order and Symbolic Computation, 12 (1999) 171–201.
Mason, I.A., Smith, S.F., and Talcott, C.L. From operational semantics to domain theory. Information and Computation, 128(1) (1996) 26–47.
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.
Mason, I.A. and Talcott, C.L. Equivalence in functional languages with effects. Journal of Functional Programming, 1 (1991) 287–327.
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.
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.
McKinna, J. and Pollack, R. Some lambda calculus and type theory formalized. Journal of Automated Reasoning, 23 (1999). An abridged version appeared as [20].
Milner, R. Fully abstract models of typed λ-calculi. Theoretical Computer Science, 4 (1977) 1–22.
Morris, J.H. Lambda Calculus Models of Programming Languages. Ph.D. thesis, Massachusetts Institute of Technology, 1968.
Plotkin, G. Call-by-name, call-by-value and the lambda calculus. Theoretical Computer Science, 1 (1975) 125–159.
Shankar, N. Personal communication, July 2000.
Talcott, C.L. Reasoning about functions with effects. In Higher Order Operational Techniques in Semantics. Cambridge University Press, 1996.
Author information
Authors and Affiliations
Rights 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
Issue Date:
DOI: https://doi.org/10.1023/A:1025689206562