On Extensibility of Proof Checkers

My suggestion is little different from LCF, just replacing one computational meta language (ML) with another (ECC, FS0,...). The philosophical point is that it is then possible to accept non canonical proof notations as object level proofs, removing the need to actually normalize them. There are problems to be worked out in practice, such as extraction of programs from constructive proof, and efficient execution of pure, total programs. Although this approach doesn't address the difficulty of proving correctness of tactics in the meta level, it is immediatly useful for tactics with structural justification (e.g. weakening) which are not even representable in LCF, and are infeasible in the Nuprl variant of LCF. Since it can be used for any object system without adding new principles such as reflection, and is compatible with other approaches to extensibility (especially partial reflection), it should be considered as part of the answer to extensibility in proof checkers.

[1]  John Harrison,et al.  Binary Decision Diagrams as a HOL Derived Rule , 1994, Comput. J..

[2]  Robert S. Boyer,et al.  A computational logic handbook , 1979, Perspectives in computing.

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

[4]  Robert L. Constable,et al.  Formalized Metareasoning in Type Theory , 1986, LICS.

[5]  Robin Milner,et al.  Edinburgh lcf: a mechanized logic of computation , 1978 .

[6]  Christine Paulin-Mohring,et al.  Extracting ω's programs from proofs in the calculus of constructions , 1989, POPL '89.

[7]  S. Hayashi,et al.  PX, a computational logic , 1988 .

[8]  J. Michael Spivey,et al.  A Functional Theory of Exceptions , 1990, Sci. Comput. Program..

[9]  John Harrison Binary Decision Diagrams as a HOL Derived Rule , 1995, Comput. J..

[10]  R. Pollack The Theory of LEGO A Proof Checker for the Extended Calculus of Constructions , 1994 .

[11]  Todd B. Knoblock Metamathematical Extensibility in Type Theory , 1988 .

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

[13]  Robert L. Constable,et al.  The semantics of reflected proof , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

[14]  Frank Pfenning,et al.  Implementing the Meta-Theory of Deductive Systems , 1992, CADE.

[15]  M. Gordon HOL: A Proof Generating System for Higher-Order Logic , 1988 .

[16]  Robert Pollack,et al.  A Verified Typechecker , 1995, TLCA.

[17]  Robert S. Boyer,et al.  The Correctness Problem in Computer Science , 1982 .

[18]  J. Harrison Metatheory and Reflection in Theorem Proving: A Survey and Critique , 1995 .

[19]  Arnon Avron,et al.  Simple Consequence Relations , 1988, Inf. Comput..

[20]  Robin Milner,et al.  Definition of standard ML , 1990 .

[21]  Robert S. Boyer,et al.  Metafunctions: Proving Them Correct and Using Them Efficiently as New Proof Procedures. , 1979 .

[22]  Dale Miller,et al.  Unification Under a Mixed Prefix , 1992, J. Symb. Comput..

[23]  Stephen Cole Kleene Mathematical Logic , 1967 .

[24]  P. Martin-Löf On the meanings of the logical constants and the justi cations of the logical laws , 1996 .

[25]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[26]  Philip Wadler,et al.  The essence of functional programming , 1992, POPL '92.

[27]  Douglas James Howe Automating reasoning in an implementation of constructive type theory , 1988 .

[28]  Zhaohui Luo,et al.  Computation and reasoning - a type theory for computer science , 1994, International series of monographs on computer science.

[29]  中野 裕,et al.  PX, a computational logic , 1988 .

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

[31]  Michael J. C. Gordon,et al.  Edinburgh LCF: A mechanised logic of computation , 1979 .

[32]  S. Feferman Finitary inductively presented logics , 1994 .

[33]  James McKinna,et al.  Pure Type Systems Formalized , 1993, TLCA.

[34]  de Ng Dick Bruijn Generalizing Automath by means of a lambda-typed lambda calculus , 1987 .

[35]  Amy P. Felty,et al.  Specifying and implementing theorem provers in a higher-order logic programming language , 1989 .

[36]  J. Roger Hindley,et al.  Introduction to combinators and λ-calculus , 1986, Acta Applicandae Mathematicae.