Article

Integration of Extended Unification into a Prolog Interpreter

Authors:
To read the full-text of this research, you can request a copy directly from the author.

Abstract

This paper reports on the practical experiences collected during the implementation of constraint logic programming techniques via metaterms and extended unification. During the actual implementation of extended unification in a concrete PROLOG implementation some minor refinements to a specification proposed earlier [3] had to be taken care of. Further, a convention related to the interpretation of the meaning of metaterms has been moved into the specification. This paper is also thought as a supplement to the C-Prolog manual [7], describing the additional predicates and conventions for the implementation of extended unification. 1 Introduction The incorporation of semantic unification into PROLOG was inspired by the work of Kornfeld [5]. His early paper provoked some clarifications in [2]. In Kornfeld's outline a failed syntactic unification was patched by trying to prove the equality of the two terms in the extended theory. This gave rise to some problems which can be avoided altog...

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the author.

Article
Forward checking is one of the most promising a priori pruning techniques for Constraint Satisfaction Problems [Mackworth 77, Mackworth and Freuder 85]. In the past some schemes for the incorporation of forward checking and other consistency techniques over finite domains into Prolog have been introduced in [Hentenryck 89]. This work resulted in the implementation of a new prototype Prolog interpreter. In this paper we present an implementation of forward checking in Prolog. This implementation is based on a very general scheme for the incorporation of semantic unification into Prolog [Holzbaur 90, Neumerkel 90]. Constraint Satisfaction Problems can be formulated declaratively in Prolog. The problem with the standard backtracking evaluation strategy however is that it does not execute this specification efficiently. Therefore, the Prolog implementation of forward checking serves at least two purposes: the set of effectively executable declarative specifications in Prolog is enlarged; t...
Conference Paper
Full-text available
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.
Equality for Prolog": Euni cation as a Mechanism for Augmenting the Prolog Search Strategy
  • E W Elcock
  • O Hoddinott
Elcock E.W., Hoddinott O.: Comments on Kornfeld's "Equality for Prolog": Euni cation as a Mechanism for Augmenting the Prolog Search Strategy, in Proceedings of the Fifth National Conference on Arti cial Intelligence (AAAI-86), Morgan Kaufmann, Los Altos, CA, 1986.
Metastructures as a Basis for the Implementation of Constraint Logic Programming Techniques, Austrian Research Institute for Arti cial Intelligence
  • C Holzbaur
Holzbaur C.: Metastructures as a Basis for the Implementation of Constraint Logic Programming Techniques, Austrian Research Institute for Arti cial Intelligence, Vienna, TR-90-2, 1990.
Realization of Forward Checking in Logic Programming through Extended Uni cation, Austrian Research Institute for Arti cial Intelligence
  • C Holzbaur
Holzbaur C.: Realization of Forward Checking in Logic Programming through Extended Uni cation, Austrian Research Institute for Arti cial Intelligence, Vienna, TR-90-11, 1990.
C-Prolog 1.5 Users Manual, SRI International
  • F Pereira
Pereira F.: C-Prolog 1.5 Users Manual, SRI International, Menlo Park, CA, 1982.