Implementing the Meta-Theory of Deductive Systems

We exhibit a methodology for formulating and verifying metatheorems about deductive systems in the Elf language, an implementation of the LF Logical Framework with an operational semantics in the spirit of logic programming. It is based on the mechanical verification of properties of transformations between deductions, which relies on type reconstruction and schema-checking. The latter is justified by induction principles for closed LF objects, which can be constructed over a given signature. We illustrate our technique through several examples, the most extensive of which is an interpretation of classical logic in minimal logic through a continuation-passing-style transformation on proofs.

[1]  Conal Elliott Extensions and applications of higher-order unification , 1990 .

[2]  David J. Pym,et al.  Investigations into Proof-Search in a System of First-Order Dependent Function Types , 1990, CADE.

[3]  Ian A. Mason Hoare's Logic in the LF , 1987 .

[4]  R. Harper Systems of polymorphic type assignment in LF , 1990 .

[5]  Dominique Clément,et al.  A simple applicative language: mini-ML , 1986, LFP '86.

[6]  Frank van Harmelen,et al.  Extensions to the Rippling-Out Tactic for Guiding Inductive Proofs , 1990, CADE.

[7]  Dale Miller,et al.  From operational semantics to abstract machines: preliminary results , 1990, LISP and Functional Programming.

[8]  Frank Pfenning,et al.  Uniication and Anti-uniication in the Calculus of Constructions , 1991 .

[9]  Daniel Leivant,et al.  The Expressiveness of Simple and Second-Order Type Structures , 1983, JACM.

[10]  Forbes AvenuePittsburgh,et al.  Compiler Veriication in Lf , 1992 .

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

[12]  Frank Pfenning,et al.  Unification and anti-unification in the calculus of constructions , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[13]  F. Honsell,et al.  A Framework for De ning LogicsRobert Harper , 1987 .

[14]  Frank Pfenning,et al.  Elf: a language for logic definition and verified metaprogramming , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[15]  Laurent Fribourg,et al.  Extracting Logic Programs from Proofs that Use Extended Prolog Execution and Induction , 1990, ICLP.

[16]  G. Gentzen Untersuchungen über das logische Schließen. I , 1935 .

[17]  Lars Hallnäs,et al.  A Proof-Theoretic Approach to Logic Programming. I. Clauses as Rules , 1990, J. Log. Comput..

[18]  F. Pfenning Logic programming in the LF logical framework , 1991 .

[19]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.

[20]  David J. Pym,et al.  Proofs, search and computation in general logic , 1990 .

[21]  Thierry Coquand,et al.  Inductively defined types , 1988, Conference on Computer Logic.

[22]  Lars Hallnäs,et al.  A Proof-Theoretic Approach to Logic Programming. II. Programs as Definitions , 1991, J. Log. Comput..

[23]  Robert L. Constable,et al.  Metalogical frameworks , 1993 .

[24]  Frank Pfenning,et al.  Modularity in the LF Logical Framework , 1991 .

[25]  Frank Pfenning,et al.  Natural Semantics and Some of Its Meta-Theory in Elf , 1992, ELP.

[26]  F. Honsell,et al.  Operational semantics in a natural deduction setting , 1991 .

[27]  Lutz Plümer Termination Proofs for Logic Programs , 1990, Lecture Notes in Computer Science.

[28]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[29]  John Hannan,et al.  Compiler verification in LF , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.