Abstract
Unification, the heart of resolution, was formulated to work in the Herbrand universe and hence does not incorporate any function evaluation. Matching is completely syntactic. In this paper, we study the replacement of unification by a constraints solver in automatic theorem proving systems using Prolog as our example. The generalization of unification into a constraint satisfaction algorithm allows the (limited) incorporation of function evaluation into unification. Constraints are also allowed as literals in the clause. We discuss the enhanced expressive power that results from incorporating an efficient ‘constrained unifier’ into an automatic theorem proving system. An interpreter for the extended Prolog system (written in Prolog) incorporating a constraint solver is presented along with examples illustrating its capabilities.
Similar content being viewed by others
References
Bazaraa, M. S. and Jarvis, J. J., Linear Programming and Network Flows, John Wiley & Sons, New York, 1977.
Charniak, E. and McDermott, D., Artificial Intelligence, Addison-Wesley, Reading, Mass., 1984.
Colmerauer, A., ‘Opening the Prolog-III universe,’ BYTE, August, 1987.
Davis, Ernest, ‘Constraint propagation with real valued quantities,’ TR-189, New York University, 1985.
Dongarra, J. J., Bunch, J. R., Moler, C. B., and Stewart, G. W., LINPACK User's Guide, SIAM, Philadelphia, PA, 1980.
vanEmden, M. H. and Kowalski, R. A., ‘The semantics of predicate logic as a programming language,’ JACM 32, 4, 1985.
Floyd, R., ‘The paradigm of programming,’ CACM, August, 1979.
Jaffar, J. and Lassez, J. L., ‘Constraint logic programming,’ Proceedings of the Conference on Principles of Programming Languages, Munich, 1987.
Lassez, C., ‘Constraint logic programming,’ BYTE, August, 1987.
Morris, K., Ullman, J. D., and VanGelder, A., ‘Design overview of the NAIL! system,’ Third International Conference on Logic Programming, Lecture Notes in Computer Science, Springer, Berlin, 1986.
Naish, L., ‘Negation and control in PROLOG,’ Lecture Notes in Computer Science, Springer, Berlin, 1986.
Naqvi, S. A., ‘Some extensions to the closed world assumption in databases,’ International Conference on Database Theory, Lecture Notes in Computer Science, Springer, Berlin, 1986.
Roach, J. W. and Fowler, G. S., ‘Virginia Tech Prolog/Lisp, a dual interpreter implementation,’ Proc. of the 18th Hawaii International Conference on System Sciences, 1985, pp. 88–92.
Robinson, J. A., ‘A machine oriented logic based on the resolution principle,’ JACM 12, 1, 1965.
Shepherdson, J. C., ‘Negation in logic programming,’ in Foundations of Deductive Databases and Logic Programming (J.Minker, editor), Los Altos, CA: Morgan Kaufmann, 1988.
Steele, G. L., ‘The definition and implementation of a computer programming language based on constraints,’ AI-TR-595, MIT, August 1980.
Strassen, V., ‘Gaussian elimination is not optional,’ Numerische Mathematik 13, 354–365 (1969).
Sutherland, I., ‘SKETCHPAD: A man-machine graphical communication system,’ IFIPS Proceedings of the Spring Joint Computer Conference, 1963.
Waltz, D., ‘Understanding live drawings of scenes with shadows,’ in The Psychology of Computer Vision (P.Winston, editor), NY: McGraw-Hill, 1975, pp. 19–91.
Warren, D. H. D., ‘Implementing Prolog — compiling logic programs’, vols. 1 and 2, DAI Research Reports 39 and 40, University of Edinburgh, 1977.
Warren, D. H. D., ‘an abstract Prolog instruction set,’ Technical Note 309, SRI International, October 1983.
Winston, P. H., Artificial Intelligence, Addison-Wesley, Reading, Mass., 1984.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Roach, J.W., Sundararajan, R. & Watson, L.T. Replacing unification by constraint satisfaction to improve logic program expressiveness. J Autom Reasoning 6, 51–75 (1990). https://doi.org/10.1007/BF00302641
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00302641