Unification of Simply Typed Lamda-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 programming language Lλ in a natural and clear fashion. In a sense, the translation only involves explicitly axiomatizing in Lλ the notions of equality and substitution of the simply typed λ-calculus: the rest of the unification process can be viewed as simply an interpreter of Lλ searching for proofs using those axioms. Comments University of Pennsylvania Department of Computer and Information Science, Technical Report No. MSCIS-91-24. This technical report is available at ScholarlyCommons: http://repository.upenn.edu/cis_reports/446 Unification Of Simply Typed Lambda-Terms As Logic Programming MS-CIS-91-24 LINC LAB 198
منابع مشابه
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...
متن کاملOn Logic Programming Representations of Lambda Terms: de Bruijn Indices, Compression, Type Inference, Combinatorial Generation, Normalization
We introduce a compressed de Bruijn representation of lambda terms and define its bijections to standard representations. Compact combinatorial generation algorithms are given for several families of lambda terms, including open, closed, simply typed and linear terms as well as type inference and normal order reduction algorithms. We specify our algorithms as a literate Prolog program. In the p...
متن کاملProof Terms for Simply Typed Higher Order Logic
This paper presents proof terms for simply typed, intuitionistic higher order logic, a popular logical framework. Unification-based algorithms for the compression and reconstruction of proof terms are described and have been implemented in the theorem prover Isabelle. Experimental results confirm the effectiveness of the compression scheme.
متن کاملRandom generation of closed simply-typed $\lambda$-terms: a synergy between logic programming and Boltzmann samplers
A natural approach to software quality assurance consists in writing unit tests securing programmer-declared code invariants. Throughout the literature a great body of work has been devoted to tools and techniques automating this labour-intensive process. A prominent example is the successful use of randomness, in particular random typeable λ-terms, in testing functional programming compilers s...
متن کاملSpecifying Theorem Provers in a Higher-Order Logic Programming Language
Since logic programming systems directly implement search and unification and since these operations are essential for the implementation of most theorem provers, logic programming languages should make ideal implementation languages for theorem provers. We shall argue that this is indeed the case if the logic programming language is extended in several ways. We present an extended logic progra...
متن کامل