Journal of Automated Reasoning

, Volume 6, Issue 1, pp 51–75 | Cite as

Replacing unification by constraint satisfaction to improve logic program expressiveness

  • J. W. Roach
  • R. Sundararajan
  • L. T. Watson


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.

Key words

Unification constraint satisfaction constrained unification Prolog 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bazaraa, M. S. and Jarvis, J. J., Linear Programming and Network Flows, John Wiley & Sons, New York, 1977.Google Scholar
  2. 2.
    Charniak, E. and McDermott, D., Artificial Intelligence, Addison-Wesley, Reading, Mass., 1984.Google Scholar
  3. 3.
    Colmerauer, A., ‘Opening the Prolog-III universe,’ BYTE, August, 1987.Google Scholar
  4. 4.
    Davis, Ernest, ‘Constraint propagation with real valued quantities,’ TR-189, New York University, 1985.Google Scholar
  5. 5.
    Dongarra, J. J., Bunch, J. R., Moler, C. B., and Stewart, G. W., LINPACK User's Guide, SIAM, Philadelphia, PA, 1980.Google Scholar
  6. 6.
    vanEmden, M. H. and Kowalski, R. A., ‘The semantics of predicate logic as a programming language,’ JACM 32, 4, 1985.Google Scholar
  7. 7.
    Floyd, R., ‘The paradigm of programming,’ CACM, August, 1979.Google Scholar
  8. 8.
    Jaffar, J. and Lassez, J. L., ‘Constraint logic programming,’ Proceedings of the Conference on Principles of Programming Languages, Munich, 1987.Google Scholar
  9. 9.
    Lassez, C., ‘Constraint logic programming,’ BYTE, August, 1987.Google Scholar
  10. 10.
    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.Google Scholar
  11. 11.
    Naish, L., ‘Negation and control in PROLOG,’ Lecture Notes in Computer Science, Springer, Berlin, 1986.Google Scholar
  12. 12.
    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.Google Scholar
  13. 13.
    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.Google Scholar
  14. 14.
    Robinson, J. A., ‘A machine oriented logic based on the resolution principle,’ JACM 12, 1, 1965.Google Scholar
  15. 15.
    Shepherdson, J. C., ‘Negation in logic programming,’ in Foundations of Deductive Databases and Logic Programming (J.Minker, editor), Los Altos, CA: Morgan Kaufmann, 1988.Google Scholar
  16. 16.
    Steele, G. L., ‘The definition and implementation of a computer programming language based on constraints,’ AI-TR-595, MIT, August 1980.Google Scholar
  17. 17.
    Strassen, V., ‘Gaussian elimination is not optional,’ Numerische Mathematik 13, 354–365 (1969).Google Scholar
  18. 18.
    Sutherland, I., ‘SKETCHPAD: A man-machine graphical communication system,’ IFIPS Proceedings of the Spring Joint Computer Conference, 1963.Google Scholar
  19. 19.
    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.Google Scholar
  20. 20.
    Warren, D. H. D., ‘Implementing Prolog — compiling logic programs’, vols. 1 and 2, DAI Research Reports 39 and 40, University of Edinburgh, 1977.Google Scholar
  21. 21.
    Warren, D. H. D., ‘an abstract Prolog instruction set,’ Technical Note 309, SRI International, October 1983.Google Scholar
  22. 22.
    Winston, P. H., Artificial Intelligence, Addison-Wesley, Reading, Mass., 1984.Google Scholar

Copyright information

© Kluwer Academic Publishers 1990

Authors and Affiliations

  • J. W. Roach
    • 1
  • R. Sundararajan
    • 1
  • L. T. Watson
    • 1
  1. 1.Department of Computer ScienceVirginia Polytechnic Institute and State UniversityBlacksburgUSA

Personalised recommendations