Skip to main content

Mechanized Operational Semantics via (Co)Induction

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1690))

Abstract

We give a fully automated description of a small programming language PL in the theorem prover Isabelle98. The language syntax and semantics are encoded, and we formally verify a range of semantic properties. This is achieved via uniform (co)inductive methods. We encode notions of bisimulation and contextual equivalence. The main original contribution of this paper is a fully automated proof that PL bisimulation coincides with PL contextual equivalence.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S. Abramsky. The lazy lambda calculus. In David Turner, editor, Research Topics in Functional Programming, pages 65–116. Addison-Wesley, 1990.

    Google Scholar 

  2. M. Abadi and L. Cardelli. A Theory of Objects. Monographs in Computer Science. Springer-Verlag, 1996.

    Google Scholar 

  3. T. Altenkirch. A formalization of the strong normalization proof for system F in LEGO. In M. Bezem and J. F. Groote, editors, Typed Lambda Calculi and Applications, volume 664 of LNCS, pages 13–28. Springer-Verlag, 1993.

    Chapter  Google Scholar 

  4. Yves Bertot and Ranan Fraer. Reasoning with Executable Specifications. Technical Report 2780, INRIA, Sophia Antipolis, January 1996.

    Google Scholar 

  5. G. M. Bierman. Observations on a Linear PCF (Preliminary Report). Technical Report 412, University of Cambridge Computer Laboratory, 1997.

    Google Scholar 

  6. E. Börger and W. Schulte. A Programmer Friendly Modular Definition of the Semantics of Java. In J. Alves-Foss, editor, Formal Syntax and Semantics of Java, 1998. To appear.

    Google Scholar 

  7. G. Collins and S. Gilmore. Supporting Formal Reasoning about Standard ML. Technical Report ECS-LFCS-94-310, Laboratory for the Foundations of Computer Science, University of Edinburgh, November 1994.

    Google Scholar 

  8. R. L. Crole and A. D. Gordon. Relating Operational and Denotational Semantics for Input/Output Effects. Mathematical Structures in Computer Science, 9:1–34, 1999.

    Article  MathSciNet  Google Scholar 

  9. C. Coquand. A proof normalization for simply typed lambda calculus written in ALF. In K. Petersson B. Nordström and G. Plotkin, editors, Proc. of the 1992 Workshop on Types for Proofs and Programs, 1992.

    Google Scholar 

  10. R. L. Crole. How Linear is Howe? In G. McCusker, A. Edalat, and S. Jourdan, editors, Advances in Theory and Formal Methods 1996, pages 60–72. Imperial College Press, 1996.

    Google Scholar 

  11. R. L. Crole. The KOREL Programming Language (Preliminary Report). Technical Report 1997/43, Department of Mathematics and Computer Science, University of Leicester, 1997.

    Google Scholar 

  12. R. L. Crole. Lectures on [Co]Induction and [Co]Algebras. Technical Report 1998/12, Department of Mathematics and Computer Science, University of Leicester, 1998.

    Google Scholar 

  13. N. de Bruijn. Lambda Calculus Notation with Nameless Dummies: a Tool for Automatic Formula Manipulation, with Application to the Church Rosser Theorem. Indagationes Mathematicae, 34:381–391, 1972.

    Article  Google Scholar 

  14. M. Fiore, G. D. Plotkin, and D. Turi. Abstract Syntax and Variable Binding. To appear in LICS 99, 1999.

    Google Scholar 

  15. A. D. Gordon, P. D. Hankin, and S. B. Lassen. Compilation and Equivalence of Imperative Objects. Draft manuscript, 1997.

    Google Scholar 

  16. A. D. Gordon and T. Melham. Five axioms of alpha-conversion. In J. von Wright, J. Grundy, and J. Harrison, editors, Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics (TPHOLs’96), volume 1125 of Lecture Notes in Computer Science, pages 173–190, Turku, Finland, August 1996. Springer-Verlag.

    Chapter  Google Scholar 

  17. A. D. Gordon. Bisimilarity as a theory of functional programming. Electronic Notes in Theoretical Computer Science, 1, 1995.

    Google Scholar 

  18. A. D. Gordon. Bisimilarity as a theory of functional programming. Technical report, Aarhus University, Denmark, 1995. BRICS Notes Series NS-95-3, BRICS, Aarhus University.

    Google Scholar 

  19. M. J. Gabbay and A. M. Pitts. A New Approach to Abstract Syntax Involving Binders. To appear in LICS 99, 1999.

    Google Scholar 

  20. D. Hirschkoff. A full formalisation of λ-calculus theory in the calculus of constructions. In Proceedings of TPHOL’97, volume 1275 of LNCS. Springer-Verlag, 1997.

    Google Scholar 

  21. D. J. Howe. Equality in lazy computation systems. In Proceedings of the 4th IEEE Symposium on Logic in Computer Science, pages 198–203, 1989.

    Google Scholar 

  22. G. Huet. Residual theory in λ-calculus: a complete Gallina development. Journal of Functional Programming, 4(3):371–394, 1994.

    Article  MathSciNet  MATH  Google Scholar 

  23. A. Felty J. Despeyroux and A. Hirschowitz. Higher order syntax in Coq. In M. Dezani-Ciancaglini and G. Plotkin, editors, Typed Lambda Calculi and Applications, volume 902 of LNCS. Springer-Verlag, 1995.

    Google Scholar 

  24. F. Pfenning J. Despeyroux and C. Schüermann. Primitive recursion for higher-order abstract syntax. In Proceedings of the Third International Conference on Typed Lambda Calculus and Applications (TLCA’97), volume LNCS. Springer-Verlag, 1997.

    Google Scholar 

  25. S. B. Lassen. Relational Reasoning about Functions and Nondeterminism. PhD thesis, Dept of Computer Science, Univ of Aarhus, 1998.

    Google Scholar 

  26. T. F. Melham and M. J. C. Gordon. Introduction to HOL. Cambridge University Press, 1993.

    Google Scholar 

  27. S. Maharaj and E. Gunter. Studying the ML module system in HOL. In T. F. Melham and J. Camilleri, editors, Proceedings of the 7th International Workshop on Higher Order Logic Theorem Proving and Its Applications, volume 859 of Lecture Notes in Computer Science, pages 346–361, Valletta, Malta, September 1994. Springer-Verlag.

    Chapter  Google Scholar 

  28. R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML (Revised). MIT Press, Cambridge, Mass., 1997.

    Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

  30. T. Nipkow. More Church Rosser Proofs. To appear in the Journal of Automated Reasoning.

    Google Scholar 

  31. T. Nipkow. Winskel is (Amost) Right: Towards a Mechanized Semantics Textbook. Formal Aspects of Computing, 10, 1998.

    Google Scholar 

  32. T. Nipkow and D. von Oheimb. Machine-Checking the Java Specification: Proving Type Safety. In J. Alves-Foss, editor, Formal Syntax and Semantics of Java, 1998. To appear.

    Google Scholar 

  33. L. C. Paulson. A fixedpoint approach to implementing (co)inductive definitions. In A. Bundy, editor, 12th International Conf. on Automated Deduction, volume 814 of LNAI, pages 148–161. Springer-Verlag, 1994.

    Google Scholar 

  34. L.C. Paulson. Isabelle: A Generic Theorem Prover. Lecture Notes in Computer Science, 828, 1994.

    Book  MATH  Google Scholar 

  35. A. M. Pitts. Operationally Based Theories of Program Equivalence. In P. Dybjer and A. M. Pitts, editors, Semantics and Logics of Computation, 1997.

    Google Scholar 

  36. A. M. Pitts. Existential Types: Logical Relations and Operational Equivalence. Draft paper, 1998.

    Google Scholar 

  37. G.D. Plotkin. A structural approach to operational semantics. Technical Report DAIMI-FN 19, Department of Computer Science, University of Aarhus, Denmark, 1981.

    Google Scholar 

  38. D. Syme. Reasoning with the formal definition of Standard ML in HOL. In J. J. Joyce and C.-J. H. Seger, editors, Proceedings of the 6th International Workshop on Higher Order Logic Theorem Proving and its Applications (HUG’93), volume 780 of Lecture Notes in Computer Science, pages 43–60, Vancouver, B.C., Canada, August 1993. Springer-Verlag, 1994.

    Chapter  Google Scholar 

  39. D. Syme. DECLARE: A Prototype Declarative Proof System for Higher Order Logic. Technical Report 416, Computer Laboratory, University of Cambridge, February 1997.

    Google Scholar 

  40. D. Syme. Proving JavaS Type Soundness. Technical Report 427, Computer Laboratory, University of Cambridge, June 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ambler, S.J., Crole, R.L. (1999). Mechanized Operational Semantics via (Co)Induction. In: Bertot, Y., Dowek, G., Théry, L., Hirschowitz, A., Paulin, C. (eds) Theorem Proving in Higher Order Logics. TPHOLs 1999. Lecture Notes in Computer Science, vol 1690. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48256-3_15

Download citation

  • DOI: https://doi.org/10.1007/3-540-48256-3_15

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66463-5

  • Online ISBN: 978-3-540-48256-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics