Logic Programming in the LF Logical Framework (1991)
Cached
Download Links
- [pecan.srv.cs.cmu.edu]
- [www.lb.cs.cmu.edu]
- [www-cgi.cs.cmu.edu]
- [www-cgi.cs.cmu.edu.]
- [www-cgi.cs.cmu.edu]
- DBLP
Other Repositories/Bibliography
| Citations: | 172 - 50 self |
BibTeX
@MISC{Pfenning91logicprogramming,
author = {Frank Pfenning},
title = {Logic Programming in the LF Logical Framework},
year = {1991}
}
Years of Citing Articles
OpenURL
Abstract
this paper we describe Elf, a meta-language intended for environments dealing with deductive systems represented in LF. While this paper is intended to include a full description of the Elf core language, we only state, but do not prove here the most important theorems regarding the basic building blocks of Elf. These proofs are left to a future paper. A preliminary account of Elf can be found in [26]. The range of applications of Elf includes theorem proving and proof transformation in various logics, definition and execution of structured operational and natural semantics for programming languages, type checking and type inference, etc. The basic idea behind Elf is to unify logic definition (in the style of LF) with logic programming (in the style of Prolog, see [22, 24]). It achieves this unification by giving types an operational interpretation, much the same way that Prolog gives certain formulas (Horn-clauses) an operational interpretation. An alternative approach to logic programming in LF has been developed independently by Pym [28]. Here are some of the salient characteristics of our unified approach to logic definition and metaprogramming. First of all, the Elf search process automatically constructs terms that can represent object-logic proofs, and thus a program need not construct them explicitly. This is in contrast to logic programming languages where executing a logic program corresponds to theorem proving in a meta-logic, but a meta-proof is never constructed or used and it is solely the programmer's responsibility to construct object-logic proofs where they are needed. Secondly, the partial correctness of many meta-programs with respect to a given logic can be expressed and proved by Elf itself (see the example in Section 5). This creates the possibilit...







