Predicates that produce side effects leave the realm of pure logic. These are for example:
Side effects are phenomena that cannot be reasoned about within the program. For example, deletion of a file or output on the system terminal.
Predicates that reason about instantiations are called meta-logical. Examples are:
These predicates are outside the realm of pure monotonic logic programs, because they break properties like commutativity of conjunction.
Other predicates that are meta-logical include:
These predicates could in principle be modeled within first-order logic, but require an infinite number of clauses.
Predicates that reason about all solutions are extra-logical. These are for example:
Predicates that impede or prohibit a declarative reading of Prolog programs are extra-logical. Examples of such predicates are:
These predicates can only be understood procedurally, by taking into account the actual control flow of the interpreter, and as such are beyond the realm of pure logic.