Equality for prolog

  • Authors:
  • William A. Kornfeld

  • Affiliations:
  • MIT Artificial Intelligence Laboratory, Cambridge, Massachusetts

  • Venue:
  • IJCAI'83 Proceedings of the Eighth international joint conference on Artificial intelligence - Volume 1
  • Year:
  • 1983

Quantified Score

Hi-index 0.00

Visualization

Abstract

The language Prolog has been extended by allowing the inclusion of assertions about equality. When a unification of two terms that do not unify syntactically is attempted, an equality theorem may be used to prove the two terms equal. If it is possible to prove that the two terms are equal the unification succeeds with the variable bindings introduced by the equality proof. It is shown that this mechanism significantly improves the power of Prolog. Sophisticated data abstraction with all the advantages of object-oriented programming is available. Techniques for passing partially instantiated data are described that extends the "multiuse" capabilities of the language, improve the efficiency of some programs, and allow the implementation of arithmetic relations that are both general and efficient. The modifications to standard Prolog are simple and straightforward and in addition the computational overhead for the extra linguistic power is not significant. Equality theorems will probably play an important role in future logic programming systems.