August 1987

Document Type


Degree Name



Dept. of Computer Science and Engineering


Oregon Graduate Center


Logic programming languages such as Prolog possess a relatively efficient evaluation procedure but restrict the expressiveness of full predicate logic. Various implementations of negation within logic programming are directed at restoring expressiveness. Negation by failure, the predominant implementation, can be both incorrect and incomplete. Furthermore, negative queries solved by failure do not return answer substitutions as do positive queries. Another implementation of negation, model elimination, is complete but may be as inefficient as resolution. Other implementations have a similar tradeoff between completeness and efficiency. Constructive negation is an effort to provide negation within logic programming based on ad hoc methods commonly used by programmers to obtain answer substitutions from negative queries. The ad hoc methods involve definition of both positive and negative information with definite clauses to retain efficient evaluation. While logic programs are described with reference to classical logic, programs incorporating constructive negation must be described by a three-valued logic containing an additional undefined value. Programs with constructive negation may be inconsistent, and syntactic restrictions are needed to ensure consistency. The resulting programs may contain universal quantifiers. An evaluation procedure for universal quantifiers is proposed that under further weak syntactic conditions is correct though necessarily incomplete. Thus, programs incorporating constructive negation are assured to be consistent and have a relatively efficient evaluation procedure.





To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.