Results 1  10
of
19
Unification: A multidisciplinary survey
 ACM Computing Surveys
, 1989
"... The unification problem and several variants are presented. Various algorithms and data structures are discussed. Research on unification arising in several areas of computer science is surveyed, these areas include theorem proving, logic programming, and natural language processing. Sections of the ..."
Abstract

Cited by 112 (1 self)
 Add to MetaCart
The unification problem and several variants are presented. Various algorithms and data structures are discussed. Research on unification arising in several areas of computer science is surveyed, these areas include theorem proving, logic programming, and natural language processing. Sections of the paper include examples that highlight particular uses
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.
Retrieving Library Identifiers via Equational Matching of Types
 Proceedings of the 10th International Conference on Automated Deduction, volume 449 of LNAI
, 1992
"... In functional programming environments, one can use types as search keys in program libraries, if one disregards trivial differences in argument order or currying. A way to do this is to identify types that are isomorphic in every Cartesian closed category; simpler put, types should be identified if ..."
Abstract

Cited by 24 (1 self)
 Add to MetaCart
In functional programming environments, one can use types as search keys in program libraries, if one disregards trivial differences in argument order or currying. A way to do this is to identify types that are isomorphic in every Cartesian closed category; simpler put, types should be identified if they are equal under an arithmetic interpretation, with Cartesian product as multiplication and function space as exponentiation. When the type system is polymorphic, one may also want to retrieve identifiers of types more general than the query. This paper describes a method to do both, that is, an algorithm for pattern matching modulo canonical CCCisomorphism. The algorithm returns a finite complete set of matchers. An implementation shows that satisfactory speed can be achieved for library search. Contents 1 Introduction 2 2 Unification/Matching in Equational Theories 6 3 Comparison with Previous Work 9 4 An Algorithm for \Gammamatching 14 5 Practical Experience of Library Search 25 6...
On the Representation and Management of Finite Sets in CLPlanguages
 Proceedings of 1998 Joint International Conference and Symposium on Logic Programming
, 1998
"... We review and compare the main techniques considered to represent finite sets in logic languages. We present a technique that combines the benefits of the previous techniques, avoiding their drawbacks. We show how to verify satisfiability of any conjunction of (positive and negative) literals based ..."
Abstract

Cited by 12 (6 self)
 Add to MetaCart
We review and compare the main techniques considered to represent finite sets in logic languages. We present a technique that combines the benefits of the previous techniques, avoiding their drawbacks. We show how to verify satisfiability of any conjunction of (positive and negative) literals based on =, ⊆, ∈, and ∪, ∩, \, and , viewed as predicate symbols, in a (hybrid) universe of finite sets. We also show that ∪ and   (i.e., disjointness of two sets) are sufficient to represent all the above mentioned operations. 1
Dimension Inference under Polymorphic Recursion
 In Proc. 7th Conf. Functional Programming Languages and Computer Architecture
, 1995
"... Numeric types can be given polymorphic dimension parameters, in order to avoid dimension errors and unit errors. The most general dimensions can be inferred automatically. It has been observed that polymorphic recursion is more important for the dimensions than for the proper types. We show that, un ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
Numeric types can be given polymorphic dimension parameters, in order to avoid dimension errors and unit errors. The most general dimensions can be inferred automatically. It has been observed that polymorphic recursion is more important for the dimensions than for the proper types. We show that, under polymorphic recursion, type inference amounts to syntactic semiunification of proper types, followed by equational semiunification of dimensions. Syntactic semiunification is unfortunately undecidable, although there are procedures that work well in practice, and proper types given by the programmer can be checked. However, the dimensions form a vector space (provided that their exponents are rational numbers). We give a polynomialtime algorithm that decides if a semiunification problem in a vector space can be solved and, if so, returns a most general semiunifier. 1 Introduction We will combine three good things as far as possible: dimension types, polymorphic recursion, and aut...
A Minimality Study for Set Unification
, 1997
"... A unification algorithm is said to be minimal for a unification problem if it generates exactly a (minimal) complete set of mostgeneral unifiers, without instances, and without repetitions. The aim of this paper is to present a combinatorial minimality study for a significant collection of sample p ..."
Abstract

Cited by 10 (7 self)
 Add to MetaCart
A unification algorithm is said to be minimal for a unification problem if it generates exactly a (minimal) complete set of mostgeneral unifiers, without instances, and without repetitions. The aim of this paper is to present a combinatorial minimality study for a significant collection of sample problems that can be used as benchmarks for testing any setunification algorithm. Based on this combinatorial study, a new SetUnification Algorithm (named SUA) is also described and proved to be minimal for all the analyzed problems. Furthermore, an existing nave setunification algorithm has also been tested to show its bad behavior for most of the sample problems.
From Set to Hyperset Unification
, 1999
"... In this paper we show how to extend a set unification algorithm  i.e., an extended unification algorithm incorporating the axioms of a simple theory of sets  to hyperset unification, that is to sets in which, roughly speaking, membership can form cycles. This is obtained by enlarging the domain ..."
Abstract

Cited by 9 (8 self)
 Add to MetaCart
In this paper we show how to extend a set unification algorithm  i.e., an extended unification algorithm incorporating the axioms of a simple theory of sets  to hyperset unification, that is to sets in which, roughly speaking, membership can form cycles. This is obtained by enlarging the domain from that of terms (hence, trees) to that of graphs involving free as well as interpreted function symbols (namely, the set element insertion and the empty set), which can be regarded as a convenient denotation of hypersets. We present a hyperset unification algorithm which (nondeterministically) computes, for each given unification problem, a finite collection of systems of equations in solvable form whose solutions represent a complete set of solutions for the given unification problem. The crucial issue of termination of the algorithm is addressed and solved by the addition of simple nonmembership constraints. Finally, the hyperset unification problem dealt with is proved to be NPcomp...
Unification Algorithms Cannot be Combined in Polynomial Time
 in Proceedings of the 13th International Conference on Automated Deduction, M.A. McRobbie and J.K. Slaney (Eds.), Springer LNAI 1104
, 1996
"... . We establish that there is no polynomialtime general combination algorithm for unification in finitary equational theories, unless the complexity class #P of counting problems is contained in the class FP of function problems solvable in polynomialtime. The prevalent view in complexity theory is ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
. We establish that there is no polynomialtime general combination algorithm for unification in finitary equational theories, unless the complexity class #P of counting problems is contained in the class FP of function problems solvable in polynomialtime. The prevalent view in complexity theory is that such a collapse is extremely unlikely for a number of reasons, including the fact that the containment of #P in FP implies that P = NP. Our main result is obtained by establishing the intractrability of the counting problem for general AGunification, where AG is the equational theory of Abelian groups. Specifically, we show that computing the cardinality of a minimal complete set of unifiers for general AGunification is a #Phard problem. In contrast, AGunification with constants is solvable in polynomial time. Since an algorithm for general AGunification can be obtained as a combination of a polynomialtime algorithm for AGunification with constants and a polynomialtime algorithm...
Semiunification of Two Terms in Abelian Groups
, 1994
"... A substitution oe AGsemiunifies the inequation s ? AG t iff there is another substitution ae such that ae(oe(s)) =AG oe(t), where =AG is equality in Abelian groups. I give an algorithm that decides if an inequation has an AGsemiunifier and, if so, returns a most general one. This is a firs ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
A substitution oe AGsemiunifies the inequation s ? AG t iff there is another substitution ae such that ae(oe(s)) =AG oe(t), where =AG is equality in Abelian groups. I give an algorithm that decides if an inequation has an AGsemiunifier and, if so, returns a most general one. This is a first step towards type derivation in programming languages with dimension types and polymorphic recursion. Key words: algorithms; Abelian groups; equational semiunification; programming languages; compilers; dimension types; polymorphic recursion. 1 Introduction This article describes an algebraic algorithm, which is related to unification. Such an algorithm seems to be necessary (but not sufficient) for type derivation in some programming languages that have dimension types as well as polymorphic recursion. I will only sketch the kind of type system I am aiming at; the technical contribution is the algebraic algorithm. 1.1 Dimension types Most type systems allow programmers to make dimensi...