Constructive Intensional Negation

Although negation is an active area of research in Logic Programming, sound and complete implementations are still absent from actual Prolog systems. One of the most promising techniques in the literature is Intensional Negation (IN), which follows a transformational approach: for each predicate p in a program its negative counterpart \({\mathit{intneg}}(p)\) is generated. However, implementations of IN have not been included in Prolog environments due, in part, to the lack of details and explicit techniques, such as the treatment of universally quantified goals. In this paper, we describe a variant of IN, which we have called Constructive Intensional Negation (CIN). Unlike earlier proposals, CIN does not resort to a special resolution strategy when dealing with universally quantified formulae, which has been instrumental in having an effective implementation. Among the contributions of this work we can mention a full implementation being tested for its integration in the Ciao Prolog system and some formal results with their associated proofs.

[1]  François Fages,et al.  Constructive Negation by Pruning , 1997, J. Log. Program..

[2]  Juan José Moreno-Navarro,et al.  Efficient Negation Using Abstract Interpretation , 2001, LPAR.

[3]  David Chan,et al.  Constructive Negation Based on the Completed Database , 1988, ICLP/SLP.

[4]  Franco Turini,et al.  A Transformational Approach to Negation in Logic Programming , 1990, J. Log. Program..

[5]  Franco Turini,et al.  Intensional Negation of Logic Programs: Examples and Implementation Techniques , 1987, TAPSOFT, Vol.2.

[6]  Lee Naish,et al.  Negation and Quantifiers in NU-Prolog , 1986, ICLP.

[7]  Giorgio Levi,et al.  Compilative Constructive Negation in Constraint Logic Programs , 1994, CAAP.

[8]  Kenneth Kunen,et al.  Negation in Logic Programming , 1987, J. Log. Program..

[9]  David Chan,et al.  An Extension of Constructive Negation and its Application in Coroutining , 1989, NACLP.

[10]  Juan José Moreno-Navarro,et al.  How to Incorporate Negation in a Prolog Compiler , 2000, PADL.

[11]  Agostino Dovier,et al.  A necessary condition for Constructive Negation in Constraint Logic Programming , 2000, Inf. Process. Lett..

[12]  N. Cutland Computability: An Introduction to Recursive Function Theory , 1980 .

[13]  Peter J. Stuckey,et al.  Negation and Constraint Logic Programming , 1995, Inf. Comput..

[14]  Juan José Moreno-Navarro,et al.  Default Rules: An Extension of Constructive Negation for Narrowing-based Languages , 1994, ICLP.

[15]  Maurizio Martelli,et al.  Negation as Instantiation , 1995, Inf. Comput..