Abstract
Disunification is the problem of deciding satisfiability of a system of equations and disequations with respect to a given equational theory. In this paper we study the disunification problem in the context of ACI1 equational theories. This problem is of great importance, for instance, for the development of constraint solvers over sets. Its solution opens new possibilities for developing automatic tools for static analysis and software verification. In this work we provide a characterization of the interpretation structures suitable to model the axioms in ACI1 theories. The satisfiability problem is solved using known techniques for the equality constraints and novel methodologies to transform disequation constraints to manageable solved forms. We propose four solved forms, each offering an increasingly more precise description of the set of solutions. For each solved form we provide the corresponding rewriting algorithm and we study the time complexity of the transformation. Remarkably, two of the solved forms can be computed and tested in polynomial time. All these solved forms are adequate to be used in the context of a Constraint Logic Programming system—e.g., they do not introduce universal quantifications, as instead happens in some of the existing solved forms for disunification problems.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Abiteboul, S., Buneman, P., & Suciu, D. (2000). Data on the Web. From Relations to Semistructured Data and XML. Morgan Kaufmann Publishers.
Aho, A. V., Hopcroft, J. E., & Ullman, J. D. (1974). The Design and Analysis of Computer Algorithms. Addison-Wesley.
Aiken, A. (1994). Set constraints: results, applications and future directions. Technical report, University of California, Berkeley.
Baader, F., & Büttner, W. (1988). Unification in commutative and idempotent monoids. Theoretical Computer Science, 56: 345–352.
Baader, F., & Schulz, K. U. (1995). Combination techniques and decision problems for disunification. Theoretical Computer Science, 142: 229–255.
Baader, F., & Schulz, K. U. (1996). Unification in the union of disjoint equational theories: combining decision procedures. Journal of Symbolic Computation, 21: 211–243.
Beeri, C., Naqvi, S., Shmueli, O., & Tsur, S. (1991). Set constructors in a logic database language. Journal of Logic Programming, 10(3): 181–232.
Beutelspacher, A., & Brestovansky, W. (1982). Generalized Schur Numbers. In Combinatorial Theory, Lecture Notes in Mathematics, pages 30–38, Springer Verlag.
Bürckert, H.-J. (1988). Solving disequations in equational theories. In Lusk, E. L., & Overbeek, R. A., eds., CADE 1988, Lecture Notes in Computer Science 310, pages 517–526, Berlin: Springer-Verlag.
Cantone, D., Omodeo, E. G., & Policriti, A. (2001). Set Theory for Computing. Springer Verlag.
Clark, K. L. (1978). Negation as failure. In Gallaire, H., & Minker, J., eds., Logic and Databases, pages 293–321. Plenum Press.
Codish, M., & Lagoon, V. (2000). Type dependencies for logic programs using ACI-unification. Theoretical Computer Science, 238(1-2): 131–159.
Colmerauer, A. (1984). Equations and inequations on finite and infinite trees. In International Conference on Fifth Generation Computer Systems, ICOT, pages 85–99.
Comon, H. (1991). Disunification: a survey. In Lassez, J.-L., & Plotkin, G., eds., Computational Logic: Essays in Honor of Alan Robinson. Cambridge, Mass.: The MIT Press.
Comon, H., & Kirchner, C. (1999). Constraint solving on terms. In Constraints in Computational Logics, pages 47–103. Springer Verlag.
Cormen, T. H., Leiserson, C. E., & Rivest, R. L. (1990). Introduction to Algorithms. The MIT Press, Cambridge, Mass.
Dovier, A., Omodeo, E. G., Pontelli, E., & Rossi, G. (1996). {log}: A language for programming in logic with finite sets. Journal of Logic Programming, 28(1): 1–44.
Dovier, A., Piazza, C., Pontelli, E., & Rossi, G. (2000). Sets and constraint logic programming. ACM Transaction on Programming Language and Systems, 22(5): 861–931.
Dovier, A., Piazza, C., & Policriti, A. (2000). Comparing expressiveness of set constructor symbols. In Kirchner, H., & Ringeissen, C., eds., Frontier of Combining Systems 2000. Lecture Notes in Computer Science 1794, pages 275–289, Springer-Verlag.
Dovier, A., Pontelli, E., & Rossi, G. (1998). Set unification revisited. NMSU-CSTR-9817, Dept. of Computer Science, New Mexico State University, USA, October.
Enderton, H. B. (1972). A Mathematical Introduction to Logic. Academic Press Inc.
Fernandez, M. (1992). Narrowing based procedures for equational disunification. In Applicable Algebra in Engineering, Communications, and Computing, pages 1–26, 1992. Springer Verlag.
Fidge, C., Hayes, I., Martin, A., & Wabenhorst, A. (1998). A Set-theoretic model for real-time specification and reasoning. In Mathematics of Program Construction. Springer Verlag.
Gervet, C. (1997). Interval propagation to reason about sets: definition and implementation of a practical language. Constraints, 1: 191–246.
Grätzer, G. (1978). General Lattice Theory. Birkhäuser Verlag Basel und Stuttgart.
Jaffar, J., Maher, M., Marriot, K., & Stuckey, P. (1998). The semantics of constraint logic programs. Journal of Logic Programming, 37: 1–46.
Kapur, D., & Narendran, P. (1986). NP-completeness of the set unification and matching problems. In Siekmann, J. H., ed., 8th International Conference on Automated Deduction, Lecture Notes in Computer Science 230, pages 489–495, Springer-Verlag.
Kirchner, C., & Lescanne, P. (1987). Solving disequations. In Proceedings of the Annual IEEE Symposium on Logic in Computer Science, pages 347–352, Ithaca, NY.
Kozen, D. (1993). Logical aspects of set constraints. In Procs. Conf. on Computer Science Logic, Vol. 832 of Lecture Notes in Computer Science, pages 175–188, Springer-Verlag.
Kuper, G.M. (1990). Logic programming with sets. Journal of Computer and System Science, 41(1): 66–75.
Legeard, B., & Legros, E. (1991). Short overview of the CLPS system. In Proc. Third Int'l Symp. on Programming Language Implementation and Logic Programming, Lecture Notes in Computer Science 528, pages 431–433, Springer-Verlag.
Maher, M. J. (1980). Complete axiomatizations of the algebras of finite, rational and infinite trees. In Proceedings of 3rd Symposium Logic in Computer Science, pages 349–357.
Mal'cev, A. (1971). Axiomatizable classes of locally free algebras of various types. In The Metamathematics of Algebraic Systems, North Holland, ch. 23.
Reiter, R. (2001). Knowledge in Action: Logical Foundations for Describing and Implementing Dynamical Systems. MIT Press.
Marriott, K., & Stuckey, P. (1998). Programming with Constraints. MIT Press.
Robinson, A. (1963). Introduction to Model Theory and to the Metamathematics of Algebra. North Holland, Amsterdam.
Siekmann, J. H. (1990). Unification theory. In Kirchner, C., ed., Unification. Academic Press.
Soininen, T., & Niemelä, I. (1999). Developing a declarative rule language for applications in product configuration. In Symposium on Practical Aspects of Declarative Languages, pages 305–319. Springer Verlag.
Spivey, J. M. (1992). The Z Notation: A reference Manual, 2 nd edition. International Series in Computer Science, Prentice Hall.
Thielscher, M. (2002). Reasoning about actions with CHR and finite domain constraints. In International Conference on Logic Programming, pages 70–84. Springer Verlag.
Wallace, M., Novello, S., & Schimpf, J. (1997). ECLiPSe: a platform for constraint logic programming. IC-PARC, Imperial College.
Warren, D. H. D. (1983). An abstract prolog instruction set. Technical Report 309, SRI International.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Dovier, A., Piazza, C. & Pontelli, E. Disunification in ACI1 Theories. Constraints 9, 35–91 (2004). https://doi.org/10.1023/B:CONS.0000006182.84033.6e
Issue Date:
DOI: https://doi.org/10.1023/B:CONS.0000006182.84033.6e