A Comparison of Formalizations of the Meta-Theory of a Language with Variable Bindings in Isabelle

Theorem provers can be used to reason formally about programming languages and there are various general methods for the formalization of variable binding operators. Hence there are choices for the style of formalization of such languages, even within a single theorem prover. The choice of formalization can affect how easy or difficult it is to do automated reasoning. The aim of this paper is to compare and contrast three formalizations (termed de Bruijn, weak HOAS and full HOAS) of a typical functional programming language. Our contribution is a detailed report on our formalizations, a survey of related work, and a final comparative summary, in which we mention a novel approach to a hybrid de Bruijn/HOAS syntax.

[1]  Andrew M. Pitts,et al.  A new approach to abstract syntax involving binders , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[2]  Bengt Nordström,et al.  Programming in Martin-Lo¨f's type theory: an introduction , 1990 .

[3]  Peter Aczel,et al.  An Introduction to Inductive Definitions , 1977 .

[4]  Lars Hallnäs,et al.  Partial Inductive Definitions , 1991, Theor. Comput. Sci..

[5]  G. Winskel The formal semantics of programming languages , 1993 .

[6]  Amy P. Felty,et al.  Higher-Order Abstract Syntax in Coq , 1995, TLCA.

[7]  Daniel Hirschkoff A Full Formalisation of pi-Calculus Theory in the Calculus of Constructions , 1997, TPHOLs.

[8]  Frank Pfenning,et al.  System Description: Twelf - A Meta-Logical Framework for Deductive Systems , 1999, CADE.

[9]  Furio Honsell,et al.  A framework for defining logics , 1993, JACM.

[10]  Roy L. Crole,et al.  Mechanized Operational Semantics via (Co)Induction , 1999, TPHOLs.

[11]  Frank Pfenning,et al.  Primitive recursion for higher-order abstract syntax , 1997, Theor. Comput. Sci..

[12]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

[13]  Amy P. Felty,et al.  The Coq proof assistant user's guide : version 5.6 , 1990 .

[14]  Carl A. Gunter,et al.  The machine-assisted proof of programming language properties , 1996 .

[15]  Frank Pfenning,et al.  Higher-order abstract syntax , 1988, PLDI '88.

[16]  Dale Miller,et al.  Reasoning with higher-order abstract syntax in a logical framework , 2000, TOCL.

[17]  Martin Hofmann Semantical analysis of higher-order abstract syntax , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[18]  A. Krall,et al.  Metatheoretic Results for a Modal λ-Calculus , 2001 .

[19]  Andrew D. Gordon,et al.  Five Axioms of Alpha-Conversion , 1996, TPHOLs.

[20]  Stefan Berghofer,et al.  Higher-Order Abstract Syntax with Induction in Isabelle/HOL: Formalizing the pi-Calculus and Mechanizing the Theory of Contexts , 2001, FoSSaCS.

[21]  Tobias Nipkow,et al.  More Church-Rosser Proofs (in Isabelle/HOL) , 1996, CADE.

[22]  Guillermo E. Herrera Automating the meta theory of deductive systems , 2000 .

[23]  Marino Miculan Developing (Meta)Theory of Lambda-calculus in the Theory of Context , 2001, Electron. Notes Theor. Comput. Sci..

[24]  Dale Miller,et al.  Unification of Simply Typed Lamda-Terms as Logic Programming , 1991, ICLP.

[25]  Eduardo Giménez,et al.  A Tutorial on Recursive Types in Coq , 1998 .

[26]  Dale Miller,et al.  An Extension to ML to Handle Bound Variables in Data Structures: Preliminary Report , 1990 .

[27]  Lars-Henrik Eriksson,et al.  Pi: an Interactive Derivation Editor for the Calculus of Partial Inductive Definitions , 1994, CADE.

[28]  Marino Miculan,et al.  Developing (Meta)Theory of λ-calculus in the Theory of Contexts1 1Work partially supported by Italian MURST project tosca and EC-WG types. , 2001 .

[29]  de Ng Dick Bruijn,et al.  Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[30]  Carolyn L. Talcott,et al.  A Theory of Binding Structures and Applications to Rewriting , 1993, Theor. Comput. Sci..

[31]  Dale Miller,et al.  Reasoning in a logic with definitions and induction , 1997 .

[32]  de Ng Dick Bruijn Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .