Logic programming in the LF logical framework
Logical frameworks
A framework for defining logics
Journal of the ACM (JACM)
Mode and Termination Checking for Higher-Order Logic Programs
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
Automated Theorem Proving in a Simple Meta-Logic for LF
CADE-15 Proceedings of the 15th International Conference on Automated Deduction: Automated Deduction
A meta-programming approach to realizing dependently typed logic programming
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
A Two-Level Logic Approach to Reasoning About Computations
Journal of Automated Reasoning
An insider's look at lf type reconstruction: Everything you never wanted to know
Journal of Functional Programming
Hi-index | 0.00 |
The Edinburgh Logical Framework (LF) is a dependently type lambda calculus that can be used to encode formal systems. The versatility of LF allows specifications to be constructed also about the encoded systems. The Twelf system exploits the correspondence between formulas and types to give specifications in LF a logic programming interpretation. By interpreting particular arguments as input and others as output, specifications can be seen as describing non-deterministic functions. We can then prove meta-theorems about the encoded systems by showing particular such functions to be total. Twelf provides tools for establishing totality. However, the resulting proofs of meta-theorems are implicit in that they do not yield a certificate that can be given to a proof checker. We begin the process here of making these proofs explicit. We treat the restricted situation in Twelf where context definitions (regular worlds), mutually recursive definitions and lemmas are not used. In this setting we describe and prove correct a translation of the steps in totality checking into an actual proof in the companion logic M2.