Negation and Constraint Logic Programming

Almost all constraint logic programming systems include negation, yet nowhere has a sound operational model for negation in CLP been discussed. The SLDNF approach of only allowing ground negative subgoals to execute is very restrictive in constraint logic programming where most variables appearing i...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Information and computation Jg. 118; H. 1; S. 12 - 33
1. Verfasser: Stuckey, P.J.
Format: Journal Article
Sprache:Englisch
Veröffentlicht: San Diego, CA Elsevier Inc 01.04.1995
Elsevier
Schlagworte:
ISSN:0890-5401, 1090-2651
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Almost all constraint logic programming systems include negation, yet nowhere has a sound operational model for negation in CLP been discussed. The SLDNF approach of only allowing ground negative subgoals to execute is very restrictive in constraint logic programming where most variables appearing in a derivation never become ground. By describing a scheme for constructive negation in constraint logic programming we give a sound and complete operational model for negation in these languages. Constructive negation was first formulated for logic programming in the Herbrand Universe and involves introducing framework for describing constructive negation. In this paper we describe a framework for constructive negation for constraint logic programming over arbitrary structures which is sound and complete with respect to the three-valued consequences of the completion of a program. Through this description, we arrive at a simpler, more efficient form of constructive negation for the Herbrand Universe. Finally we characterize what makes a structure particularly suited to the use of constructive negation and show this suitability condition for a number of structures and classes of structures. The constraint viewpoint of constraint logic programming is well matched with constructive negation. Not only is constructive negation easier to understand from this point of view, but more importantly it gives the first clean approach to negation in constraint logic programming.
ISSN:0890-5401
1090-2651
DOI:10.1006/inco.1995.1048