TPHOLs 1999: Theorem Proving in Higher Order Logics pp 221-238 | Cite as
Mechanized Operational Semantics via (Co)Induction
Conference paper
First Online:
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.
References
- [Abr90]S. Abramsky. The lazy lambda calculus. In David Turner, editor, Research Topics in Functional Programming, pages 65–116. Addison-Wesley, 1990.Google Scholar
- [AC96]M. Abadi and L. Cardelli. A Theory of Objects. Monographs in Computer Science. Springer-Verlag, 1996.Google Scholar
- [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
- [BF96]Yves Bertot and Ranan Fraer. Reasoning with Executable Specifications. Technical Report 2780, INRIA, Sophia Antipolis, January 1996.Google Scholar
- [Bie97]G. M. Bierman. Observations on a Linear PCF (Preliminary Report). Technical Report 412, University of Cambridge Computer Laboratory, 1997.Google Scholar
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [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
- [FPT99]M. Fiore, G. D. Plotkin, and D. Turi. Abstract Syntax and Variable Binding. To appear in LICS 99, 1999.Google Scholar
- [GHL97]A. D. Gordon, P. D. Hankin, and S. B. Lassen. Compilation and Equivalence of Imperative Objects. Draft manuscript, 1997.Google Scholar
- [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
- [Gor95a]A. D. Gordon. Bisimilarity as a theory of functional programming. Electronic Notes in Theoretical Computer Science, 1, 1995.Google Scholar
- [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
- [GP99]M. J. Gabbay and A. M. Pitts. A New Approach to Abstract Syntax Involving Binders. To appear in LICS 99, 1999.Google Scholar
- [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
- [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
- [Hue94]G. Huet. Residual theory in λ-calculus: a complete Gallina development. Journal of Functional Programming, 4(3):371–394, 1994.MathSciNetCrossRefMATHGoogle Scholar
- [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
- [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
- [Las98]S. B. Lassen. Relational Reasoning about Functions and Nondeterminism. PhD thesis, Dept of Computer Science, Univ of Aarhus, 1998.Google Scholar
- [MG93]T. F. Melham and M. J. C. Gordon. Introduction to HOL. Cambridge University Press, 1993.Google Scholar
- [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
- [MMH97]R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML (Revised). MIT Press, Cambridge, Mass., 1997.Google Scholar
- [MT91]I. A. Mason and C. L. Talcott. Equivalence in functional languages with effects. Journal of Functional Programming, 1:287–327, 1991.MathSciNetCrossRefMATHGoogle Scholar
- [Nip]T. Nipkow. More Church Rosser Proofs. To appear in the Journal of Automated Reasoning.Google Scholar
- [Nip98]T. Nipkow. Winskel is (Amost) Right: Towards a Mechanized Semantics Textbook. Formal Aspects of Computing, 10, 1998.Google Scholar
- [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
- [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
- [Pau94b]L.C. Paulson. Isabelle: A Generic Theorem Prover. Lecture Notes in Computer Science, 828, 1994.CrossRefMATHGoogle Scholar
- [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
- [Pit98]A. M. Pitts. Existential Types: Logical Relations and Operational Equivalence. Draft paper, 1998.Google Scholar
- [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
- [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
- [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
- [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