Results 1  10
of
42
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 175 (50 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...
Higherorder narrowing with definitional trees
 Neural Computation
, 1996
"... Functional logic languages with a sound and complete operational semantics are mainly based on narrowing. Due to the huge search space of simple narrowing, steadily improved narrowing strategies have been developed in the past. Needed narrowing is currently the best narrowing strategy for firstord ..."
Abstract

Cited by 78 (23 self)
 Add to MetaCart
Functional logic languages with a sound and complete operational semantics are mainly based on narrowing. Due to the huge search space of simple narrowing, steadily improved narrowing strategies have been developed in the past. Needed narrowing is currently the best narrowing strategy for firstorder functional logic programs due to its optimality properties w.r.t. the length of derivations and the number of computed solutions. In this paper, we extend the needed narrowing strategy to higherorder functions and λterms as data structures. By the use of definitional trees, our strategy computes only incomparable solutions. Thus, it is the first calculus for higherorder functional logic programming which provides for such an optimality result. Since we allow higherorder logical variables denoting λterms, applications go beyond current functional and logic programming languages.
Third Order Matching is Decidable
 Annals of Pure and Applied Logic
, 1999
"... The higher order matching problem is the problem of determining whether a term is an instance of another in the simply typed calculus, i.e. to solve the equation a = b where a and b are simply typed terms and b is ground. The decidability of this problem is still open. We prove the decidability of ..."
Abstract

Cited by 49 (0 self)
 Add to MetaCart
The higher order matching problem is the problem of determining whether a term is an instance of another in the simply typed calculus, i.e. to solve the equation a = b where a and b are simply typed terms and b is ground. The decidability of this problem is still open. We prove the decidability of the particular case in which the variables occurring in the problem are at most third order. Introduction The higher order matching problem is the problem of determining whether a term is an instance of another in the simply typed calculus i.e. to solve the equation a = b where a and b are simply typed terms and b is ground. Pattern matching algorithms are used to check if a proposition can be deduced from another by elimination of universal quantifiers or by introduction of existential quantifiers. In automated theorem proving, elimination of universal quantifiers and introduction of existential quantifiers are mixed and full unification is required, but in proofchecking and semiaut...
Solving HigherOrder Equations: From Logic to Programming
, 1995
"... Higherorder constructs provide the necessary level of abstraction for concise and natural formulations in many areas of computer science. We present constructive methods for higherorder equational reasoning with applications ranging from theorem proving to novel programming concepts. A major probl ..."
Abstract

Cited by 36 (9 self)
 Add to MetaCart
Higherorder constructs provide the necessary level of abstraction for concise and natural formulations in many areas of computer science. We present constructive methods for higherorder equational reasoning with applications ranging from theorem proving to novel programming concepts. A major problem of higherorder programming is the undecidability of higherorder unification. In the first part, we develop several classes with decidable secondorder unification. As the main result, we show that the unification of a linear higherorder pattern s with an arbitrary secondorder term that shares no variables with s is decidable and finitely solvable. This is the unification needed for secondorder functionallogic programming. The second main contribution is a framework for solving higherorder equational problems by narrowing. In the firstorder case, narrowing is the underlying computation rule for the integration of logic programming and functional programming. We argue that there are...
Ordersorted polymorphism in isabelle
 Logical Environments
, 1993
"... MLstyle polymorphism can be generalized from a singlesorted algebra of types to an ordersorted one by adding a partially ordered layer of “sorts ” on top of the types. Type inference proceeds as in the Hindley/Milner system, except that ordersorted unification of types is used. The resulting sys ..."
Abstract

Cited by 33 (2 self)
 Add to MetaCart
MLstyle polymorphism can be generalized from a singlesorted algebra of types to an ordersorted one by adding a partially ordered layer of “sorts ” on top of the types. Type inference proceeds as in the Hindley/Milner system, except that ordersorted unification of types is used. The resulting system has been implemented in Isabelle to permit type variables to range over userdefinable subsets of all types. Ordersorted polymorphism allows a simple specification of type restrictions in many logical systems. It accommodates userdefined parametric overloading and allows for a limited form of abstract axiomatic reasoning. It can also explain type inference with Standard ML’s equality types and Haskell’s type classes. 1
Extensions and Applications of Higherorder Unification
, 1990
"... ... unification problems. Then, in this framework, we develop a new unification algorithm for acalculus with dependent function (II) types. This algorithm is especially useful as it provides for mechanization in the very expressive Logical Framework (LF). The development (objectlanguages). The ric ..."
Abstract

Cited by 25 (1 self)
 Add to MetaCart
... unification problems. Then, in this framework, we develop a new unification algorithm for acalculus with dependent function (II) types. This algorithm is especially useful as it provides for mechanization in the very expressive Logical Framework (LF). The development (objectlanguages). The rich structure of a typedcalculus,asopposedtotraditional,rst generalideaistouseacalculusasametalanguageforrepresentingvariousotherlanguages thelattercase,thealgorithmisincomplete,thoughstillquiteusefulinpractice. Thelastpartofthedissertationprovidesexamplesoftheusefulnessofthealgorithms.The algorithmrstfordependentproduct()types,andsecondforimplicitpolymorphism.In involvessignicantcomplicationsnotarisingHuet'scorrespondingalgorithmforthesimply orderabstractsyntaxtrees,allowsustoexpressrules,e.g.,programtransformationand typedcalculus,primarilybecauseitmustdealwithilltypedterms.Wethenextendthis Wecanthenuseunicationinthemetalanguagetomechanizeapplicationoftheserules.
Higherorder narrowing
 PROC. NINTH ANNUAL IEEE SYMPOSIUM ON LOGIC IN COMPUTER SCIENCE
, 1994
"... We introduce several approaches for solving higherorder equational problems by higherorder narrowing and give first completeness results. The results apply to higherorder functionallogic programming languages and to higherorder unification modulo a higherorder equational theory. We lift the ge ..."
Abstract

Cited by 20 (8 self)
 Add to MetaCart
We introduce several approaches for solving higherorder equational problems by higherorder narrowing and give first completeness results. The results apply to higherorder functionallogic programming languages and to higherorder unification modulo a higherorder equational theory. We lift the general notion of firstorder narrowing to socalled higherorder patterns and argue that the full higherorder case is problematic. Integrating narrowing into unification, called lazy narrowing, can avoid these problems and can be adapted to the full higherorder case. For the secondorder case, we develop a version where the needed secondorder unification remains decidable. Finally we discuss a method that combines both approaches by using narrowing on higherorder patterns with full higherorder constraints.
Hierarchical Contextual Reasoning
, 2003
"... VII Zusammenfassung IX Extended Abstract XI Acknowledgements XIII I ..."
Abstract

Cited by 18 (9 self)
 Add to MetaCart
VII Zusammenfassung IX Extended Abstract XI Acknowledgements XIII I
A decision algorithm for stratified context unification
 FACHBEREICH INFORMATIK, J.W. GOETHEUNIVERSITAT
, 1999
"... Context unification is a variant of second order unification and also a generalization of string unification. Currently it is not known whether context unification is decidable. A specialization of context unification is stratified context unification. Recently, it turned out that stratified context ..."
Abstract

Cited by 17 (1 self)
 Add to MetaCart
Context unification is a variant of second order unification and also a generalization of string unification. Currently it is not known whether context unification is decidable. A specialization of context unification is stratified context unification. Recently, it turned out that stratified context unification and onestep rewrite constraints are equivalent. This paper contains a description of a decision algorithm SCU for stratified context unification, which shows decidability of stratified context unification as well as of satisfiability of onestep rewrite constraints.
Higherorder Unification with Dependent Function Types
 3rd Int. Conf. Rewriting Techniques and Applications, LNCS 355
, 1989
"... Roughly fifteen years ago, Huet developed a complete semidecision algorithm for unification in the simply typed calculus ( ! ). In spite of the undecidability of this problem, his algorithm is quite usable in practice. Since then, many important applications have come about in such areas as theorem ..."
Abstract

Cited by 17 (0 self)
 Add to MetaCart
Roughly fifteen years ago, Huet developed a complete semidecision algorithm for unification in the simply typed calculus ( ! ). In spite of the undecidability of this problem, his algorithm is quite usable in practice. Since then, many important applications have come about in such areas as theorem proving, type inference, program transformation, and machine learning. Another development is the discovery that by enriching ! to include dependent function types, the resulting calculus ( \Pi ) forms the basis of a very elegant and expressive Logical Framework, encompassing the syntax, rules, and proofs for a wide class of logics. This paper presents an algorithm in the spirit of Huet's, for unification in \Pi . This algorithm gives us the best of both worlds: the automation previously possible in ! , and the greatly enriched expressive power of \Pi . It can be used to considerable advantage in many of the current applications of Huet's algorithm, and has important new applications as w...