On the Completeness of Residuation

Michael Hanus

Technical Report MPI-I-92-217, Max-Planck-Institut fuer Informatik

Short version in Proc. 1992 Joint International Conference and Symposium on Logic Programming

Residuation is an operational mechanism for the integration of functions into logic programming languages. The residuation principle delays the evaluation of functions during the unification process until the arguments are sufficiently instantiated. This has the advantage that the deterministic nature of functions is preserved but the disadvantage of incompleteness: if the variables in a delayed function call are not instantiated by the logic program, this function can never be evaluated and some answers which are logical consequences of the program are lost. In this paper we present a method for detecting such situations. The method is based on a compile-time analysis of the program and approximates the possible residuations and instantiation states of variables during program execution.

Available: DVI BibTeX-Entry