Results 1  10
of
14
Logic Programming in the LF Logical Framework
, 1991
"... this paper we describe Elf, a metalanguage 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 b ..."
Abstract

Cited by 192 (54 self)
 Add to MetaCart
this paper we describe Elf, a metalanguage 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 (Hornclauses) 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 objectlogic 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 metalogic, but a metaproof is never constructed or used and it is solely the programmer's responsibility to construct objectlogic proofs where they are needed. Secondly, the partial correctness of many metaprograms with respect to a given logic can be expressed and proved by Elf itself (see the example in Section 5). This creates the possibilit...
Rewriting Logic as a Logical and Semantic Framework
, 1993
"... Rewriting logic [72] is proposed as a logical framework in which other logics can be represented, and as a semantic framework for the specification of languages and systems. Using concepts from the theory of general logics [70], representations of an object logic L in a framework logic F are und ..."
Abstract

Cited by 169 (57 self)
 Add to MetaCart
Rewriting logic [72] is proposed as a logical framework in which other logics can be represented, and as a semantic framework for the specification of languages and systems. Using concepts from the theory of general logics [70], representations of an object logic L in a framework logic F are understood as mappings L ! F that translate one logic into the other in a conservative way. The ease with which such maps can be defined for a number of quite different logics of interest, including equational logic, Horn logic with equality, linear logic, logics with quantifiers, and any sequent calculus presentation of a logic for a very general notion of "sequent," is discussed in detail. Using the fact that rewriting logic is reflective, it is often possible to reify inside rewriting logic itself a representation map L ! RWLogic for the finitely presentable theories of L. Such a reification takes the form of a map between the abstract data types representing the finitary theories of...
Using Typed Lambda Calculus to Implement Formal Systems on a Machine
 Journal of Automated Reasoning
, 1992
"... this paper and the LF. In particular the idea of having an operator T : Prop ! Type appears already in De Bruijn's earlier work, as does the idea of having several judgements. The paper [24] describes the basic features of the LF. In this paper we are going to provide a broader illustration of ..."
Abstract

Cited by 92 (16 self)
 Add to MetaCart
(Show Context)
this paper and the LF. In particular the idea of having an operator T : Prop ! Type appears already in De Bruijn's earlier work, as does the idea of having several judgements. The paper [24] describes the basic features of the LF. In this paper we are going to provide a broader illustration of its applicability and discuss to what extent it is successful. The analysis (of the formal presentation) of a system carried out through encoding often illuminates the system itself. This paper will also deal with this phenomenon.
On Equivalence and Canonical Forms in the LF Type Theory
"... Decidability of definitional equality and conversion of terms into canonical form play a central role in the metatheory of a typetheoretic logical framework. Most studies of definitional equality are based on a confluent, stronglynormalizing notion of reduction. Coquand has considered a different ..."
Abstract

Cited by 81 (16 self)
 Add to MetaCart
Decidability of definitional equality and conversion of terms into canonical form play a central role in the metatheory of a typetheoretic logical framework. Most studies of definitional equality are based on a confluent, stronglynormalizing notion of reduction. Coquand has considered a different approach, directly proving the correctness of a practical equivalance algorithm based on the shape of terms. Neither approach appears to scale well to richer languages with, for example, unit types or subtyping, and neither provides a notion of canonical form suitable for proving adequacy of encodings. In this paper we present a new, typedirected equivalence algorithm for the LF type theory that overcomes the weaknesses of previous approaches. The algorithm is practical, scales to richer languages, and yields a new notion of canonical form sufficient for adequate encodings of logical systems. The algorithm is proved complete by a Kripkestyle logical relations argument similar to that suggested by Coquand. Crucially, both the algorithm itself and the logical relations rely only on the shapes of types, ignoring dependencies on terms.
Encoding Dependent Types in an Intuitionistic Logic
 LOGICAL FRAMEWORKS
, 1991
"... Various languages have been proposed as specification languages for representing a wide variety of logics. The development of typed calculi has been one approach toward this goal. The logical framework (LF), a calculus with dependent types is one example of such a language. A small subset of intui ..."
Abstract

Cited by 22 (6 self)
 Add to MetaCart
(Show Context)
Various languages have been proposed as specification languages for representing a wide variety of logics. The development of typed calculi has been one approach toward this goal. The logical framework (LF), a calculus with dependent types is one example of such a language. A small subset of intuitionistic logic with quantification over the simply typed calculus has also been proposed as a framework for specifying general logics. The logic of hereditary Harrop formulas with quantification at all nonpredicate types, denoted here as hh ! , is such a metalogic. In this paper, we show how to translate specifications in LF into hh ! specifications in a direct and natural way, so that correct typing in LF corresponds to intuitionistic provability in hh ! . In addition, we demonstrate a direct correspondence between proofs in these two systems. The logic of hh ! can be implemented using such logic programming techniques as providing operational interpretations to the connectives ...
Optimized Encodings of Fragments of Type Theory in First Order Logic
 JLC: Journal of Logic and Computation
, 1994
"... The paper presents sound and complete translations of several fragments of MartinLof's monomorphic type theory to first order predicate calculus. The translations are optimised for the purpose of automated theorem proving in the mentioned fragments. The implementation of the theorem prover ..."
Abstract

Cited by 8 (4 self)
 Add to MetaCart
(Show Context)
The paper presents sound and complete translations of several fragments of MartinLof's monomorphic type theory to first order predicate calculus. The translations are optimised for the purpose of automated theorem proving in the mentioned fragments. The implementation of the theorem prover Gandalf and several experimental results are described. 1 Introduction The subject of this paper is the problem of automated theorem proving in MartinLof's monomorphic type theory [19, 8], which is the underlying logic of the interactive proof development system ALF [2, 14]. In the scope of our paper the task of automated theorem proving in type theory is understood as demonstrating that a certain type is inhabited by constructing a term of that type. The problem of inhabitedness of a type A is understood in the following way: given a set of judgements \Gamma (these may be constant declarations, explicit definitions and defining equalities), find a term a such that a2A is derivable from \Gam...
Tool Support for Logics of Programs
 Mathematical Methods in Program Development: Summer School Marktoberdorf 1996, NATO ASI Series F
, 1996
"... Proof tools must be well designed if they... ..."
Polymorphic Lemmas and Definitions in λProlog and Twelf
 THEORY AND PRACTICE OF LOGIC PROGRAMMING
, 2004
"... λProlog is known to be wellsuited for expressing and implementing logics and inference systems. We show that lemmas and definitions in such logics can be implemented with a great economy of expression. We encode a higherorder logic using an encoding that maps both terms and types of the object log ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
λProlog is known to be wellsuited for expressing and implementing logics and inference systems. We show that lemmas and definitions in such logics can be implemented with a great economy of expression. We encode a higherorder logic using an encoding that maps both terms and types of the object logic (higherorder logic) to terms of the metalanguage (AProlog). We discuss both the Terzo and Teyjus implementations of AProlog. We also encode the same logic in Twelf and compare the features of these two metalanguages for our purposes.
The Architecture of an Implementation of λProlog: Prolog/Mali
, 1992
"... λProlog is a logic programming language accepting a more general clause form than standard Prolog (namely hereditary Harrop formulas instead of Horn formulas) and using simply typed λterms as a term domain instead of first order terms. Despite these extensions, it is still amenable to goaldirected ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
λProlog is a logic programming language accepting a more general clause form than standard Prolog (namely hereditary Harrop formulas instead of Horn formulas) and using simply typed λterms as a term domain instead of first order terms. Despite these extensions, it is still amenable to goaldirected proofs and can still be given procedural semantics. However, the execution of λProlog programs requires several departures from the standard resolution scheme. First, the augmented clause form causes the program (a set of clauses) and the signature (a set of constants) to be changeable, but in a very disciplined way. Second, the new term domain has a semidecidable and infinitary unification theory, and it introduces the need for a fireduction operation at runtime. MALI is an abstract memory that is suitable for storing the searchstate of depthfirst search processes. Its main feature is its efficient memory management. We have used an original PrologtoC translation: predicates are trans...
Proofsearch in typetheoretic languages: an introduction
 Theoretical Computer Science
, 2000
"... We introduce the main concepts and problems in the theory of proofsearch in typetheoretic languages and survey some specific, connected topics. We do not claim to cover all of the theoretical and implementation issues in the study of proofsearch in typetheoretic languages; rather, we present som ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We introduce the main concepts and problems in the theory of proofsearch in typetheoretic languages and survey some specific, connected topics. We do not claim to cover all of the theoretical and implementation issues in the study of proofsearch in typetheoretic languages; rather, we present some key ideas and problems, starting from wellmotivated points of departure such as a definition of a typetheoretic language or the relationship between languages and proofobjects. The strong connections between different proofsearch methods in logics, type theories and logical frameworks, together with their impact on programming and implementation issues, are central in this context.