Mechanized Operational Semantics via (Co)Induction

  • Simon J. Ambler
  • Roy L. Crole
Conference paper
Part of the Lecture Notes in Computer Science book series (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.

Keywords

Operational Semantic Abstract Syntax Functional Programming High Order Logic Elimination Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [Abr90]
    S. Abramsky. The lazy lambda calculus. In David Turner, editor, Research Topics in Functional Programming, pages 65–116. Addison-Wesley, 1990.Google Scholar
  2. [AC96]
    M. Abadi and L. Cardelli. A Theory of Objects. Monographs in Computer Science. Springer-Verlag, 1996.Google Scholar
  3. [Alt93]
    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.CrossRefGoogle Scholar
  4. [BF96]
    Yves Bertot and Ranan Fraer. Reasoning with Executable Specifications. Technical Report 2780, INRIA, Sophia Antipolis, January 1996.Google Scholar
  5. [Bie97]
    G. M. Bierman. Observations on a Linear PCF (Preliminary Report). Technical Report 412, University of Cambridge Computer Laboratory, 1997.Google Scholar
  6. [BS98]
    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. [CG94]
    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. [CG99]
    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.MathSciNetCrossRefGoogle Scholar
  9. [Coq92]
    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. [Cro96]
    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. [Cro97]
    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. [Cro98]
    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. [dB72]
    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.CrossRefGoogle Scholar
  14. [FPT99]
    M. Fiore, G. D. Plotkin, and D. Turi. Abstract Syntax and Variable Binding. To appear in LICS 99, 1999.Google Scholar
  15. [GHL97]
    A. D. Gordon, P. D. Hankin, and S. B. Lassen. Compilation and Equivalence of Imperative Objects. Draft manuscript, 1997.Google Scholar
  16. [GM96]
    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.CrossRefGoogle Scholar
  17. [Gor95a]
    A. D. Gordon. Bisimilarity as a theory of functional programming. Electronic Notes in Theoretical Computer Science, 1, 1995.Google Scholar
  18. [Gor95b]
    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. [GP99]
    M. J. Gabbay and A. M. Pitts. A New Approach to Abstract Syntax Involving Binders. To appear in LICS 99, 1999.Google Scholar
  20. [Hir97]
    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. [How89]
    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. [Hue94]
    G. Huet. Residual theory in λ-calculus: a complete Gallina development. Journal of Functional Programming, 4(3):371–394, 1994.MathSciNetCrossRefMATHGoogle Scholar
  23. [JDH95]
    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. [JDS97]
    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. [Las98]
    S. B. Lassen. Relational Reasoning about Functions and Nondeterminism. PhD thesis, Dept of Computer Science, Univ of Aarhus, 1998.Google Scholar
  26. [MG93]
    T. F. Melham and M. J. C. Gordon. Introduction to HOL. Cambridge University Press, 1993.Google Scholar
  27. [MG94]
    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.CrossRefGoogle Scholar
  28. [MMH97]
    R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML (Revised). MIT Press, Cambridge, Mass., 1997.Google Scholar
  29. [MT91]
    I. A. Mason and C. L. Talcott. Equivalence in functional languages with effects. Journal of Functional Programming, 1:287–327, 1991.MathSciNetCrossRefMATHGoogle Scholar
  30. [Nip]
    T. Nipkow. More Church Rosser Proofs. To appear in the Journal of Automated Reasoning.Google Scholar
  31. [Nip98]
    T. Nipkow. Winskel is (Amost) Right: Towards a Mechanized Semantics Textbook. Formal Aspects of Computing, 10, 1998.Google Scholar
  32. [NvO98]
    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. [Pau94a]
    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. [Pau94b]
    L.C. Paulson. Isabelle: A Generic Theorem Prover. Lecture Notes in Computer Science, 828, 1994.CrossRefMATHGoogle Scholar
  35. [Pit97]
    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. [Pit98]
    A. M. Pitts. Existential Types: Logical Relations and Operational Equivalence. Draft paper, 1998.Google Scholar
  37. [Plo81]
    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. [Sym93]
    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.CrossRefGoogle Scholar
  39. [Sym97a]
    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. [Sym97b]
    D. Syme. Proving JavaS Type Soundness. Technical Report 427, Computer Laboratory, University of Cambridge, June 1997.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Simon J. Ambler
    • 1
  • Roy L. Crole
    • 1
  1. 1.Leicester UniversityLeicesterUK

Personalised recommendations