• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Unification of simply typed lambda-terms as logic programming (1991)

by D Miller
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 39
Next 10 →

Primitive Recursion for Higher-Order Abstract Syntax

by Joëlle Despeyroux, Frank Pfenning - Theoretical Computer Science , 1997
"... ..."
Abstract - Cited by 117 (24 self) - Add to MetaCart
Abstract not found

Unification under a mixed prefix

by Dale Miller - Journal of Symbolic Computation , 1992
"... Unification problems are identified with conjunctions of equations between simply typed λ-terms where free variables in the equations can be universally or existentially quantified. Two schemes for simplifying quantifier alternation, called Skolemization and raising (a dual of Skolemization), are pr ..."
Abstract - Cited by 109 (12 self) - Add to MetaCart
Unification problems are identified with conjunctions of equations between simply typed λ-terms where free variables in the equations can be universally or existentially quantified. Two schemes for simplifying quantifier alternation, called Skolemization and raising (a dual of Skolemization), are presented. In this setting where variables of functional type can be quantified and not all types contain closed terms, the naive generalization of firstorder Skolemization has several technical problems that are addressed. The method of searching for pre-unifiers described by Huet is easily extended to the mixed prefix setting, although solving flexible-flexible unification problems is undecidable since types may be empty. Unification problems may have numerous incomparable unifiers. Occasionally, unifiers share common factors and several of these are presented. Various optimizations on the general unification search problem are as discussed. 1.

Natural Semantics and Some of its Meta-Theory in Elf

by Spiro Michaylov, Frank Pfenning, Im Stadtwald - Proceedings of the Second International Workshop on Extensions of Logic Programming , 1991
"... Operational semantics provide a simple, high-level and elegant means of specifying interpreters for programming languages. In natural semantics, a form of operational semantics, programs are traditionally represented as first-order tree structures and reasoned about using natural deduction-like meth ..."
Abstract - Cited by 40 (14 self) - Add to MetaCart
Operational semantics provide a simple, high-level and elegant means of specifying interpreters for programming languages. In natural semantics, a form of operational semantics, programs are traditionally represented as first-order tree structures and reasoned about using natural deduction-like methods. Hannan and Miller combined these methods with higher-order representations using Prolog. In this paper we go one step further and investigate the use of the logic programming language Elf to represent natural semantics. Because Elf is based on the LF Logical Framework with dependent types, it is possible to write programs that reason about their own partial correctness. We illustrate these techniques by giving type checking rules and operational semantics for Mini-ML, a small functional language based on a simply typed -calculus with polymorphism, constants, products, conditionals, and recursive function definitions. We also partially internalize proofs for some meta-theoretic properti...

Higher-order abstract syntax in Coq

by Joëlle Despeyroux, Amy Felty, André Hirschowitz , 1995
"... The terms of the simply-typed λ-calculus can be used to express the higher-order abstract syntax of objects such as logical formulas, proofs, and programs. Support for the manipulation of such objects is provided in several programming languages (e.g. λProlog, Elf). Such languages also provide embed ..."
Abstract - Cited by 37 (1 self) - Add to MetaCart
The terms of the simply-typed λ-calculus can be used to express the higher-order abstract syntax of objects such as logical formulas, proofs, and programs. Support for the manipulation of such objects is provided in several programming languages (e.g. λProlog, Elf). Such languages also provide embedded implication, a tool which is widely used for expressing hypothetical judgments in natural deduction. In this paper, we show how a restricted form of second-order syntax and embedded implication can be used together with induction in the Coq Proof Development system. We specify typing rules and evaluation for a simple functional language containing only function abstraction and application, and we fully formalize a proof of type soundness in the system. One difficulty we encountered is that expressing the higher-order syntax of an object-language as an inductive type in Coq generates a class of terms that contains more than just those that directly represent objects in the language. We ove...

An Empirical Study of the Runtime Behavior of Higher-Order Logic Programs

by Spiro Michaylov, Frank Pfenning - University of Pennsylvania. Available as , 1992
"... this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of the U.S. Government. ..."
Abstract - Cited by 28 (7 self) - Add to MetaCart
this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of the U.S. Government.

Bi-rewrite systems

by Jordi Levy, Jaume Agusti , 1996
"... In this article we propose an extension of term rewriting techniques to automate the deduction in monotone pre-order theories. To prove an inclusion a ⊆ b from a given set I of them, we generate from I, using a completion procedure, a bi-rewrite system 〈R⊆, R⊇〉, that is, a pair of rewrite relations ..."
Abstract - Cited by 27 (9 self) - Add to MetaCart
In this article we propose an extension of term rewriting techniques to automate the deduction in monotone pre-order theories. To prove an inclusion a ⊆ b from a given set I of them, we generate from I, using a completion procedure, a bi-rewrite system 〈R⊆, R⊇〉, that is, a pair of rewrite relations −−− → R ⊆ and −−− → R ⊇ , and seek a common term c such that a −−−→ R ⊆ c and b −−−→

Tabled Higher-Order Logic Programming

by Brigitte Pientka - In 20th International Conference on Automated Deduction , 2003
"... Elf is a general meta-language for the specification and implementation of logical systems in the style of the logical framework LF. Based on a logic programming interpretation, it supports executing logical systems and reasoning with and about them, thereby reducing the effort required for each ..."
Abstract - Cited by 25 (11 self) - Add to MetaCart
Elf is a general meta-language for the specification and implementation of logical systems in the style of the logical framework LF. Based on a logic programming interpretation, it supports executing logical systems and reasoning with and about them, thereby reducing the effort required for each particular logical system. The traditional logic programming paradigm is extended by replacing first-order terms with dependently typed -terms and allowing implication and universal quantification in the bodies of clauses. These higher-order features allow us to model concisely and elegantly conditions on variables and the discharge of assumptions which are prevalent in many logical systems. However, many specifications are not executable under the traditional logic programming semantics and performance may be hampered by redundant computation. To address these problems, I propose a tabled higher-order logic programming interpretation for Elf. Some redundant computation is eliminated by memoizing sub-computation and re-using its result later. If we do not distinguish different proofs for a property, then search based on tabled logic programming is complete and terminates for programs with bounded recursion. In this proposal, I present a proof-theoretical characterization for tabled higher-order logic programming. It is the basis of the implemented prototype for tabled logic programming interpreter for Elf. Preliminary experiments indicate that many more logical specifications are executable under the tabled semantics. In addition, tabled computation leads to more efficient execution of programs. The goal of the thesis is to demonstrate that tabled logic programming allows us to efficiently automate reasoning with and about logical systems in the logical f...

Higher-order narrowing

by Christian Prehofer - PROC. NINTH ANNUAL IEEE SYMPOSIUM ON LOGIC IN COMPUTER SCIENCE , 1994
"... We introduce several approaches for solving higher-order equational problems by higher-order narrowing and give first completeness results. The results apply to higher-order functional-logic programming languages and to higher-order unification modulo a higher-order equational theory. We lift the ge ..."
Abstract - Cited by 20 (8 self) - Add to MetaCart
We introduce several approaches for solving higher-order equational problems by higher-order narrowing and give first completeness results. The results apply to higher-order functional-logic programming languages and to higher-order unification modulo a higher-order equational theory. We lift the general notion of first-order narrowing to so-called higher-order patterns and argue that the full higher-order case is problematic. Integrating narrowing into unification, called lazy narrowing, can avoid these problems and can be adapted to the full higher-order case. For the second-order case, we develop a version where the needed second-order unification remains decidable. Finally we discuss a method that combines both approaches by using narrowing on higher-order patterns with full higher-order constraints.

A Logic Programming Approach to Implementing Higher-Order Term Rewriting

by Amy Felty - Second International Workshop on Extensions to Logic Programming, volume 596 of Lecture Notes in Arti Intelligence , 1992
"... Term rewriting has proven to be an important technique in theorem proving. In this paper, we illustrate that rewrite systems and strategies for higher-order term rewriting, which includes the usual notion of first-order rewriting, can be naturally specified and implemented in a higher-order logic pr ..."
Abstract - Cited by 16 (2 self) - Add to MetaCart
Term rewriting has proven to be an important technique in theorem proving. In this paper, we illustrate that rewrite systems and strategies for higher-order term rewriting, which includes the usual notion of first-order rewriting, can be naturally specified and implemented in a higher-order logic programming language. We adopt a notion of higher-order rewrite system which uses the simply typed -calculus as the language for expressing rules, with a restriction on the occurrences of free variables on the left hand sides of rules so that matching of terms with rewrite templates is decidable. The logic programming language contains an implementation of the simply-typed lambda calculus including fij- conversion and higher-order unification. In addition, universal quantification in queries and the bodies of clauses is permitted. For higher-order rewriting, we show how these operations implemented at the meta-level provide elegant mechanisms for the object-level operations of descending thro...

Decidable higher-order unification problems

by Christian Prehofer - AUTOMATED DEDUCTION | CADE-12. SPRINGER LNAI 814 , 1994
"... Second-order unification is undecidable in general. Miller showed that unification of so-called higher-order patterns is decidable and unitary. Weshow that the unification of a linear higher-order pattern s with an arbitrary second-order term that shares no variables with s is decidable and finitar ..."
Abstract - Cited by 16 (4 self) - Add to MetaCart
Second-order unification is undecidable in general. Miller showed that unification of so-called higher-order patterns is decidable and unitary. Weshow that the unification of a linear higher-order pattern s with an arbitrary second-order term that shares no variables with s is decidable and finitary. A few extensions of this unification problem are still decidable: unifying two second-order terms, where one term is linear, is undecidable if the terms contain bound variables but decidable if they don't.
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University