A logical semantics for depth-first Prolog with ground negation
James H. Andrews · International Conference on Logic Programming · 1993
A sound and complete semantics is given for sequential, depth-first logic programming with a version of negation as failure. The semantics is logical in the sense that it is built up only from valuation functions (multi-valued logic interpretations in the style of Fitting and Kunen) and logically-motivated equivalence relations between formulas. The notion of predicate folding and unfolding with respect to a program (Tamaki, Sato, Levi et al.) and the universal notion of “disjunctive unfolding” (Andrews) are important elements of this semantics. The negation used is the version which returns an error indication whenever it is invoked on a non-ground goal. It is theoretically interesting that this form of negation, along with the left-to-right processing of depth-first logic programming, can be characterized logically with fourvalued interpretations over an extended alphabet of terms. The fourth truth value, N , can be read operationally as “floundering on negation”. The extension of the alphabet provides the semantics with a logical analogue of free variables. This intriguing technique may open the door to the characterization of other forms of practical negation, or of other language features involving groundness conditions. This material was published earlier as a technical report [4] and is the expanded version, including proofs, of a paper presented at the 1993 International Logic Programming Symposium (ILPS) [5].