ABSTRACT

Logic programming (LP) is a language paradigm based on logic. Its constructs are Boolean implications (e.g., q implies p meaning that p is true if q is true), compositions using the Boolean operators and (called conjunctions) and or (called disjunctions). LP can also be viewed as a procedural language in which the procedures are actually Boolean functions, the result of a program always being either true or false.

In the case of implications, a major restriction applies: when q implies p, written p :- q , then q can consist of conjunctions but p has to be a singleton, representing the (sole) Boolean function being defined. The Boolean operator not is disallowed but there is a similar construct that may be used in certain cases.