Skip to main content
Log in

An Algorithm for General Set Unification and Its Complexity

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

In this paper, an algorithm for set unification – which is a restricted case of the associative-commutative-idempotent (ACI) unification – is presented. The algorithm is able to unify finite sets containing arbitrary terms. It is nondeterministic and can easily be implemented in Prolog. Because of the simplicity of the algorithm, the computation of a single solution is quite fast, and the exact complexity of the algorithm and of the set unification problem itself can be analyzed easily. The algorithm is compared with some other set unification algorithms. All algorithms have single exponential complexity, because the set unification problem is NP-complete, but our exact complexity analysis provides more details. It is shown how the algorithm presented here can be used to solve a generalized set unification problem where sets with tails are admissible. The algorithm can be used in any logic programming language embedding (finite) sets, or in other contexts where set unification is needed, for example, in some unification-based grammar formalisms.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Arenas-Sánchez, P. and Dovier, A.: Minimal set unification, in M. Hermenegildo and S. D. Swierstra (eds.), Proceedings of the 7th International Symposium on Programming Language Implementation and Logic Programming, LNCS 982, Springer, Berlin, Heidelberg, New York, 1995, pp. 397–414.

    Google Scholar 

  2. Domenjoud, E.: A technical note on AC-unification: The number of minimal unifiers of the equation 1 - 1, J. Automated Reasoning 8 (1992), 39–44.

    Google Scholar 

  3. Dovier, A., Omodeo, E. G., Pontelli, E. and Rossi, G.: {log}: A language for programming in logic with finite sets, J. Logic Programming 28(1) (1996), 1–44.

    Google Scholar 

  4. ECRC GmbH, München: ECLiPSe 3.5: User Manual – Extensions User Manual, 1995. Two volumes.

  5. Graham, R. L., Knuth, D. E. and Patashnik, O.: Concrete Mathematics, 2nd edition, Addison-Wesley, Reading, MA, 1994.

  6. Jayaraman, B. and Plaisted, D. A.: Functional programming with sets, in G. Kahn (ed.), Proceedings of the 3rd International Conference on Functional Programming Languages and Computer Architecture, LNCS 274, Springer, Berlin, Heidelberg, New York, 1987, pp. 194–211.

  7. Jayaraman, B. and Plaisted, D. A.: Programming with equations, subsets, and relations, in E. L. Lusk and R. A. Overbeek (eds.), Proceedings of the North American Conference on Logic Programming, Cleveland, OH, MIT Press, Cambridge, MA, London, 1989, pp. 1051–1068.

  8. Jouannaud, J.-P. and Kirchner, C.: Solving equations in abstract algebras: A rule-based survey of unification, in J.-L. Lassez and G. Plotkin (eds.), Computational Logic: Essays in Honor of Alan Robinson, MIT Press, Cambridge, MA, London, 1991, pp. 257–321.

    Google Scholar 

  9. Kapur, D. and Narendran, P.: NP-completeness of the set unification and matching problems, in J. H. Siekmann (ed.), Proceedings of the 8th International Conference on Automated Deduction, Oxford, LNCS 230, Springer, Berlin, Heidelberg, 1986, pp. 489–495.

    Google Scholar 

  10. Kapur, D. and Narendran, P.: Double-exponential complexity of computing a complete set of AC-unifiers, in Proceedings of the 7th Annual Symposium on Logic in Computer Science, Santa Cruz, CA, 1992, pp. 11–21.

  11. Kapur, D. and Narendran, P.: A unification algorithm for associative-commutative-idempotent theories, preliminary report, State University of New York at Albany Department of Computer Science Institute for Programming and Logics, Albany, NY, 1993.

  12. Lincoln, P. and Christian, J.: Adventures in associative-commutative unification (a summary), in E. Lusk and R. Overbeek (eds.), Proceedings of the 9th International Conference on Automated Deduction, Argonne, IL, LNCS 310, Springer, Berlin, Heidelberg, New York, 1988, pp. 358–367.

  13. Pollard, C. J. and Moshier, M. D.: Unifying partial description of sets, in P. Hanson (ed.), Information, Language, and Cognition, University of British Columbia Press, Vancouver, BC, 1990, pp. 285–322.

  14. Pollard, C. J. and Sag, I. A.: Head-Driven Phrase Structure Grammar, University of Chicago Press, Chicago, London, 1994. CSLI publication.

  15. Shmueli, O., Tsur, S. and Zaniolo, C.: Compilation of set terms in the logic data language (LDL), J. Logic Programming 12(1–2) (1992), 89–119.

    Google Scholar 

  16. Siekmann, J. H.: Unification theory, J. Symbolic Comput. 7(1) (1989), 207–274.

    Google Scholar 

  17. Stolzenburg, F.: An algorithm for general set unification and its complexity, in E. G. Omodeo and G. Rossi (eds.), Proceedings of the Workshop on Logic Programming with Sets in Conjunction with 10th International Conference on Logic Programming, Budapest, 1993, pp. 17–22.

  18. Stolzenburg, F.: Membership-constraints and complexity in logic programming with sets, in F. Baader and K. U. Schulz (eds.), Frontiers in Combining Systems, Kluwer Academic Publ., Dordrecht, The Netherlands, 1996, pp. 285–302.

    Google Scholar 

  19. Vitter, J. S. and Flajolet, P.: Average-case analysis of algorithms and data structures, in J. van Leeuwen (ed.), Handbook of Theoretical Computer Science, Elsevier Science, Amsterdam, 1990, pp. 431–524.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Stolzenburg, F. An Algorithm for General Set Unification and Its Complexity. Journal of Automated Reasoning 22, 45–63 (1999). https://doi.org/10.1023/A:1006019227709

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1006019227709

Navigation