Skip to main content
Log in

Constructive negation and constraint logic programming with sets

  • Regular Paper
  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

The aim of this paper is to extend theConstructive Negation technique to the case ofCLP(SεT), a Constraint Logic Programming (CLP) language based on hereditarily (and hybrid) finite sets. The challenging aspects of the problem originate from the fact that the structure on whichCLP(SεT) is based is notadmissible closed, and this does not allow to reuse the results presented in the literature concerning the relationships betweenCLP and constructive negation.

We propose a new constraint satisfaction algorithm, capable of correctly handling constructive negation for large classes ofCLP(SεT) programs; we also provide a syntactic characterization of such classes of programs. The resulting algorithm provides a novel constraint simplification procedure to handle constructive negation, suitable to theories where unification admits multiple most general unifiers. We also show, using a general result, that it is impossible to construct an interpreter forCLP(SεT) with constructive negation which is guaranteed to work for any arbitrary program; we identify classes of programs for which the implementation of the constructive negation technique is feasible.

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. Apt, K. R. and Bol, R., “Logic Programming and Negation: a Survey,”Journal of Logic Programming, 19–20, pp. 9–71, 1994.

    Article  MathSciNet  Google Scholar 

  2. Arenas-Sánchez, P. and Dovier, A., “A Minimality Study for Set Unification,”Journal of Functional and Logic Programming, 7, pp. 1–49, 1997.

    Google Scholar 

  3. Arni, N., Greco, S. and Saccà, D., “Matching of Bounded Set Terms in the Logic Language LDL++,”Journal of Logic Programming, 27, 1, pp. 73–87, 1996.

    Article  MATH  MathSciNet  Google Scholar 

  4. Baader, F. and Schulz, K. U., Unification Theory, “Automated Deduction — A Basis for Applications,” (Bibel, W. and Schmidt, P. H. eds),Foundations —Calculi and Methods, 1, Applied Logic Series, 8, Vol. 8 of Applied Logic Kluwer Academic Publishers, pp. 225–263. 1998.

  5. Barbuti, R., Mancarella, P., Pedreschi, D. and Turini, F., “A Transformation Approach to Negation in Logic Programming,”Journal of Logic Programming, 8, pp. 201–228, 1990.

    Article  MATH  MathSciNet  Google Scholar 

  6. Beeri, C., Naqvi, S., Shmueli, O. and Tsur., S., “Set Constructors in a Logic Database Language,”Journal of Logic Programming, 10, 3, pp. 181–232, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  7. Bernays, P., “A System of Axiomatic Set Theory Part I,”Journal of Symbolic Logic, 2, pp. 65–77, 1937.

    Article  MATH  Google Scholar 

  8. Bruscoli, P., Dovier, A., Pontelli, E. and Rossi, G., “Compiling Intensional Sets in CLP,” inProc. of Eleventh Int’l Conf. on Logic Programming (1994) (Van Hentenryck, P. ed.) The MIT Press, Cambridge, Mass., pp. 647–661.

    Google Scholar 

  9. Bruynooghe, M., “A Framework for the Abstract Interpretation of Logic Programs,”Journal of Logic Programming, 10, 1–4, pp. 91–124, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  10. Cantone, D., Ferro, A. and Omodeo, E. G., “Computable Set Theory,”International Series of Monographs on Computer Science, 1, Clarendon Press, Oxford, 1989.

    MATH  Google Scholar 

  11. Chan, D., “Constructive Negation Based on the Completed Database,” inProc. of Fifth International Conference and Symposium on Logic Programming (1988) (Kowalski, R. and Bowen, K., eds.) The MIT Press, Cambridge, Mass., pp. 111–125.

    Google Scholar 

  12. Chan, D., “An Extension of Constructive Negation and its Application in Coroutining,” inProc. of North-American Conference on Logic Programming (1989) (Lusk, E. and Overbeek, R., eds.) The MIT Press, Cambridge, Mass., pp. 477–493.

    Google Scholar 

  13. Clark, K. L., “Negation as Failure,”Logic and Databases (Gallaire, H. and Minker, J. eds.) Plenum Press, pp. 293–321, 1978.

  14. Cortesi, A. and Filè, G., “Abstract Interpretation of Logic Programs: an Abstract Domain for Groundness, Sharing, Freeness and Compoundness Analysis,” inProc. of SIGPLAN Symposium on Partial Evaluation and Semantics Based Program Manipulation, ACM Press, pp. 52–61, 1991.

  15. Debray, S., Lopez-Garcia, P. and Hermenegildo, M., “Non-failure Analysis for Logic Programs,” inProc. of the International Conference on Logic Programming, MIT Press, pp. 48–62, 1997.

  16. Dovier, A. and Rossi, G., “Embedding Extensional Finite Sets in CLP,” inProc. of Int’l Logic Programming Symposium (Miller, D. ed.) The MIT Press Cambridge, Mass., pp. 540–556, 1993.

    Google Scholar 

  17. Dovier, A., Omodeo, E. G., Pontelli, E. and Rossi, G., “{log}: A Language for Programming in Logic with Finite Sets,”Journal of Logic Programming, 28, 1, pp. 1–44, 1996.

    Article  MATH  MathSciNet  Google Scholar 

  18. Dovier, A., Policriti, A. and Rossi, G., “A Uniform Axiomatic View of Lists, Multisets, and Sets, and the Relevant Unification Algorithms,”Fundamenta Informaticae, 36, 2/3, pp. 201–234, 1998.

    MATH  MathSciNet  Google Scholar 

  19. Dovier, A., Pontelli, E. and Rossi, G., “A Necessary Condition for Constructive Negation in Constraint Logic Programming,” To appear inInformation Processing Letters.

  20. Drabent, W., “What is Failure? An Approach to Constructive Negation,”Acta Informatica, 32, 1, pp. 27–29, 1995.

    Article  MATH  MathSciNet  Google Scholar 

  21. Fages, F., “Constructive Negation by Pruning and Optimization Higher-order Predicates for clp and cc Languages,”Constraint Programming: Basic and Trends Lecture Notes in Computer Science, 910, Springer-Verlag, Berlin, pp. 68–89, 1995.

    Google Scholar 

  22. Jaffar, J. and Lassez, J.-L., “Constraint Logic Programming,” Tech. rep., Department of Computer Science, Monash University, June 1986.

  23. Jaffar, J. and Maher, M. J., “Constraint Logic Programming: A Survey,”The Journal of Logic Programming, 19, 20, pp. 503–581, 1994.

    Article  MathSciNet  Google Scholar 

  24. Lloyd, J.,Foundations of Logic Programming, Springer Verlag, 1986.

  25. Kunen, K., “Negation in Logic Programming,”Journal of Logic Programming, 4, pp. 289–308, 1987.

    Article  MATH  MathSciNet  Google Scholar 

  26. Lassez, J. L., Maher, M. J., and Marriot, K., “Unification Revisited,”Foundations of Deductive Databases and Logic Programming (Minker, J. ed.), pp. 587–625, Morgan Kaufmann, 1988.

  27. Maher, M. J., “Complete Axiomatizations of the Algebras of Finite, Rational, and Infinite Trees,” inProc. of Third Symposium Logic in Computer Science, pp. 349–357, 1988.

  28. Mal’cev, A., “Axiomatizable Classes of Locally Free Algebras of Various Types,”The Metamathematics of Algebraic Systems, North Holland,23, 1971.

  29. Martelli, A. and Montanari, U., “An Efficient Unification Algorithm,”ACM Transactions on Programming Languages and Systems, 4, pp. 258–282, 1982.

    Article  MATH  Google Scholar 

  30. Moreno-Navarro, J. J. and Muñoz-Hernández, S., “How to Incorporate Negation in a Prolog Compiler,” inProc. of International Workshop on Practical Aspects of Declarative Languages (Pontelli, E. and Santos Costa, V., eds.) ofLecture Notes in Computer Science, 1753, Springer-Verlag, Berlin, pp. 124–139, 2000.

    Chapter  Google Scholar 

  31. Muthukumar, K. and Hermenegildo, M., “Combined Determination of Sharing and Freeness of Program Variables Through Abstract Interpretation,” inProc. of International Conference on Logic Programming, MIT Press, pp. 49–63, 1991.

  32. Niemela, I., “Logic Programs with Stable Model Semantics as a Constraint Programming Paradigm,” to appear inAnnals of Mathematics and AI.

  33. Özsoyoglu, G., Özsoyoglu, Z. and Matos, V., “Extending Relational Algebra and Relational Calculus with Set Valued Attributes and Aggregate Functions,”Transactions on Database Systems, 12, 4, pp. 566–592, 1987.

    Article  MathSciNet  Google Scholar 

  34. Przymusinski, T., “On Constructive Negation in Logic Programming,” inProc. of North American Conference on Logic Programming, MIT Press, 1990.

  35. Shepherdson, J. C., “Negation in Logic Programming,”Foundations of Deductive Databases and Logic Programming (Miker, J. ed.) Morgan Kaufmann, pp. 19–88, 1988.

  36. Siekmann, J. H., “Unification Theory,”Unification (Kirchner, C. ed.) Academic Press, 1990.

  37. Stuckey, P. J., “Negation and Constraint Logic Programming,”Information and Computation, 1, pp. 12–33, 1995.

    Article  MathSciNet  Google Scholar 

  38. Vaught, R. L., “On a Theorem of Cobham Concerning Undecidable Theories,” inProc. of the 1960 International Congress, Stanford University Press (Nagel, E. Suppes, P. and Tarski, A. eds.), pp. 14–25, 1962.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Agostino Dovier.

Additional information

Agostino Dovier, Ph.D.: He is a researcher in the Department of Science and Technology at the University of Verona, Italy. He obtained his master degree in Computer Science from the University of Udine, Italy, in 1991 and his Ph.D. in Computer Science from the University of Pisa, Italy, in 1996. His research interests are in Programming Languages and Constraints over complex domains, such as Sets and Multisets. He has published over 20 research papers in International Journals and Conferences. He is teaching a course entitled “Special Languages and Techniques for Programming” at the University of Verona.

Enrico Pontelli, Ph.D.: He is an Assistant Professor in the Department of Computer Science at the New Mexico State University. He obtained his Laurea degree from the University of Udine (Italy) in 1991, his Master degree from the University of Houston in 1992, and his Ph.D. degree from New Mexico State University in 1997. His research interests are in Programming Languages, Parallel Processing, and Constraint Programming. He has published over 50 papers and served on the program committees of different conferences. He is presently the Associate Director of the Laboratory for Logic, Databases, and Advanced Programming.

Gianfranco Rossi, Ph.D.: He received his degree in Computer Science from the University of Pisa in 1979. From 1981 to 1983 he was employed at Intecs Co. System House in Pisa. From November 1983 to February 1989 he was a researcher at the Dipartimento di Informatica of the University of Turin. Since March 1989 he is an Associate Professor of Computer Science, currently with the University of Parma. He is the author of several papers dealing mainly with programming languages, in particular logic programming languages and Prolog, and extended unification algorithms. His current research interests are (logic) programming languages with sets and set unification algorithms.

About this article

Cite this article

Dovier, A., Pontelli, E. & Rossi, G. Constructive negation and constraint logic programming with sets. New Gener Comput 19, 209–255 (2001). https://doi.org/10.1007/BF03037598

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF03037598

Keywords

Navigation