Functional programming with sets
Proc. of a conference on Functional programming languages and computer architecture
Journal of Symbolic Computation
Average-case analysis of algorithms and data structures
Handbook of theoretical computer science (vol. A)
Compilation of set terms in the logic data language (LDL)
Journal of Logic Programming
Journal of Automated Reasoning
Concrete Mathematics: A Foundation for Computer Science
Concrete Mathematics: A Foundation for Computer Science
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
NP-Completeness of the Set Unification and Matching Problems
Proceedings of the 8th International Conference on Automated Deduction
Adventures in Associative-Commutative Unification (A Summary)
Proceedings of the 9th International Conference on Automated Deduction
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Sets and constraint logic programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Complexity and Algorithms for the Matching of Bag and Set Terms
JELIA '02 Proceedings of the European Conference on Logics in Artificial Intelligence
Theory and Practice of Logic Programming
Hi-index | 0.00 |
In this paper, an algorithm for set unification – which is arestricted case of the associative-commutative-idempotent (ACI) unification– is presented. The algorithm is able to unify finite sets containingarbitrary terms. It is nondeterministic and can easily be implemented inProlog. Because of the simplicity of the algorithm, the computation of asingle solution is quite fast, and the exact complexity of the algorithm andof the set unification problem itself can be analyzed easily. The algorithmis compared with some other set unification algorithms. All algorithms havesingle exponential complexity, because the set unification problem isNP-complete, but our exact complexity analysis provides more details. It isshown how the algorithm presented here can be used to solve a generalizedset unification problem where sets with tails are admissible. The algorithmcan be used in any logic programming language embedding (finite) sets, or inother contexts where set unification is needed, for example, in someunification-based grammar formalisms.