built-in method



\+ Goal

Not-provable meta-predicate. True iff call(Goal) is false. This built-in meta-predicate is declared as a private method and thus cannot be used as a message to an object.


The argument is always compiled. As a consequence, when the argument is a control construct (e.g. a conjunction), any meta-variables will be wrapped with the equivalent to the call/1 control construct. Note that these semantics differ from the ISO Prolog Core standard specification for the (\+)/1 built-in predicate.

Modes and number of proofs

\+ +callable - zero_or_one


Goal is a variable:
Goal is neither a variable nor a callable term:
type_error(callable, Goal)


Not-provable goal in the context of the object or category containing the call:
\+ Goal
Not-provable goal sent as a message to self:
\+ ::Goal
Not-provable goal sent as a message to an explicit object:
\+ Object::Goal

See also

call/1-N, ignore/1, once/1