Mechanising the Metatheory of LF

by Christian Urban, James Cheney and Stefan Berghofer

Abstract

LF is a dependent type theory in which many other formal systems can be conveniently embedded. However, correct use of LF relies on nontrivial metatheoretic developments such as proofs of correctness of decision procedures for LF's judgments. Although detailed informal proofs of these properties have been published, they have not been formally verified in a theorem prover. We have formalized these properties within Isabelle/HOL using the Nominal Datatype Package, closely following a recent article by Harper and Pfenning. In the process, we identified and resolved a gap in one of the proofs and a small number of minor lacunae in others. We also formally derive a version of the type checking algorithm from which Isabelle/HOL can generate executable code. Besides its intrinsic interest, our formalization provides a foundation for studying the adequacy of LF encodings, the correctness of Twelf-style metatheoretic reasoning, and the metatheory of extensions to LF.

Technical Report [pdf]
(This technical report contains in some sections more details of our development than we presented in the LICS'08 paper, and also a new section on the locally nameless representation of binders and on code generation.)

Nominal Isabelle Development

(includes all three developments discussed in the technical report) [LF.tgz]


Last modified: Fri Oct 23 17:42:50 CEST 2009 [Validate this page.]