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.
Similar content being viewed by others
References
Apt, K. R. and Bol, R., “Logic Programming and Negation: a Survey,”Journal of Logic Programming, 19–20, pp. 9–71, 1994.
Arenas-Sánchez, P. and Dovier, A., “A Minimality Study for Set Unification,”Journal of Functional and Logic Programming, 7, pp. 1–49, 1997.
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.
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.
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.
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.
Bernays, P., “A System of Axiomatic Set Theory Part I,”Journal of Symbolic Logic, 2, pp. 65–77, 1937.
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.
Bruynooghe, M., “A Framework for the Abstract Interpretation of Logic Programs,”Journal of Logic Programming, 10, 1–4, pp. 91–124, 1991.
Cantone, D., Ferro, A. and Omodeo, E. G., “Computable Set Theory,”International Series of Monographs on Computer Science, 1, Clarendon Press, Oxford, 1989.
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.
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.
Clark, K. L., “Negation as Failure,”Logic and Databases (Gallaire, H. and Minker, J. eds.) Plenum Press, pp. 293–321, 1978.
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.
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.
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.
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.
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.
Dovier, A., Pontelli, E. and Rossi, G., “A Necessary Condition for Constructive Negation in Constraint Logic Programming,” To appear inInformation Processing Letters.
Drabent, W., “What is Failure? An Approach to Constructive Negation,”Acta Informatica, 32, 1, pp. 27–29, 1995.
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.
Jaffar, J. and Lassez, J.-L., “Constraint Logic Programming,” Tech. rep., Department of Computer Science, Monash University, June 1986.
Jaffar, J. and Maher, M. J., “Constraint Logic Programming: A Survey,”The Journal of Logic Programming, 19, 20, pp. 503–581, 1994.
Lloyd, J.,Foundations of Logic Programming, Springer Verlag, 1986.
Kunen, K., “Negation in Logic Programming,”Journal of Logic Programming, 4, pp. 289–308, 1987.
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.
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.
Mal’cev, A., “Axiomatizable Classes of Locally Free Algebras of Various Types,”The Metamathematics of Algebraic Systems, North Holland,23, 1971.
Martelli, A. and Montanari, U., “An Efficient Unification Algorithm,”ACM Transactions on Programming Languages and Systems, 4, pp. 258–282, 1982.
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.
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.
Niemela, I., “Logic Programs with Stable Model Semantics as a Constraint Programming Paradigm,” to appear inAnnals of Mathematics and AI.
Ö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.
Przymusinski, T., “On Constructive Negation in Logic Programming,” inProc. of North American Conference on Logic Programming, MIT Press, 1990.
Shepherdson, J. C., “Negation in Logic Programming,”Foundations of Deductive Databases and Logic Programming (Miker, J. ed.) Morgan Kaufmann, pp. 19–88, 1988.
Siekmann, J. H., “Unification Theory,”Unification (Kirchner, C. ed.) Academic Press, 1990.
Stuckey, P. J., “Negation and Constraint Logic Programming,”Information and Computation, 1, pp. 12–33, 1995.
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.
Author information
Authors and Affiliations
Corresponding author
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
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF03037598