Lambda Unification
نویسنده
چکیده
We give a formal description of an algorithm for lambda unification. The input to the algorithm consists of two terms t and s of lambda logic. The purpose of the algorithm is to find (sometimes) a substitution σ such that tσ = sσ is provable in lambda logic. In general such unifiers are not unique. Lambda logic itself is defined in [2]. We prove some basic metatheorems about lambda unification, and compare it to the previously known notion of “higher order unification.” Examples of the use of lambda unification to find proofs by mathematical induction, using its implementation in the theorem prover Otter-lambda, are given in [4].
منابع مشابه
Describing Lambda Terms in Context Unification
The constraint language for lambda structures (CLLS) is a description language for lambda terms. CLLS provides parallelism constraints to talk about the tree structure of lambda terms, and lambda binding constraints to specify variable binding. Parallelism constraints alone have the same expressiveness as context unification. In this paper, we show that lambda binding constraints can also be ex...
متن کاملLPAR-05 Workshop: Empirically Successfull Automated Reasoning in Higher-Order Logic (ESHOL)
Otter-lambda is a theorem-prover based on an untyped logic with lambda calculus, called Lambda Logic. Otter-lambda is built on Otter, so it uses resolution proof search, supplemented by demodulation and paramodulation for equality reasoning, but it also uses a new algorithm, lambda unification, for instantiating variables for functions or predicates. The basic idea of a typed interpretation of ...
متن کاملA Nominal Unification from a Higher-Order Perspective
Nominal logic is an extension of first-order logic with equality, name-binding, renaming via name-swapping and freshness of names. Contrarily to lambda-terms, in nominal terms, bindable names, called atoms, and instantiable variables are considered as distinct entities. Moreover, atoms are capturable by instantiations, breaking a fundamental principle of the lambda-calculus. Despite these diffe...
متن کاملUnification Of Simply Typed Lambda-Terms As Logic Programming
The unification of simply typed λ-terms modulo the rules of ßand η-conversions is often called "higherorder" unification because of the possible presence of variables of functional type. This kind of unification is undecidable in general and if unifiers exist, most general unifiers may not exist. In this paper, we show that such unification problems can be coded as a query of the logic programm...
متن کاملNominal Narrowing
Nominal unification is a generalisation of first-order unification that takes α-equivalence into account. In this paper, we study nominal unification in the context of equational theories. We introduce nominal narrowing and design a general nominal E-unification procedure, which is sound and complete for a wide class of equational theories. We give examples of application. 1998 ACM Subject Clas...
متن کامل