Journal of Logic Programming
Automatic mode inference for logic programs
Journal of Logic Programming
Equivalences of logic programs
Foundations of deductive databases and logic programming
A transformational approach to negation in logic programming
Journal of Logic Programming
What is failure?: an approach to constructive negation
Acta Informatica
Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs
PLILP '91 Selected papers of the symposium on Programming language implementation and logic programming
Negation and constraint logic programming
Information and Computation
Lower-bound time-complexity analysis of logic programs
ILPS '97 Proceedings of the 1997 international symposium on Logic programming
Compilative Constructive Negation in Constraint Logic Programs
CAAP '94 Proceedings of the 19th International Colloquium on Trees in Algebra and Programming
Constructive negation by bottom-up computation of literal answers
Proceedings of the 2004 ACM symposium on Applied computing
Hi-index | 0.01 |
In logic programming, a variable is said to be local if it occurs in a clause body but not in its head atom. It is well-known that local variables are the main cause of inefficiency (sometimes even incompleteness) in negative goal computation. The problem is twofold. First, the negation of a clause body that contains a local variables is not expressible without universal quantification, whereas the abscence of local variables guarantees that universal quantification can be avoided to compute negation. Second, computation of universal quantification is an intrinsically difficult task. In this paper, we introduce an effective method that takes a definite logic program and transforms it into a local variable free (definite) program. Source and target programs are equivalent w.r.t. three-valued logical consequences of program completion. In further work, we plan to extend our results to normal logic programs.