A goal that is satisfied when another goal fails.
Any backward chaining goal.
not is used in a backward chaining goal, it succeeds if the condition contained within it fails. In this usage, only one condition is allowed.
not is used in a forward chaining pre-condition, it succeeds if any of the condition contained within it fail. In this usage, the conditions may only contain expressions normally allowed in forward chaining pre-conditions (object base references and lisp tests).
(not (truck ?truck driver ?driver) (test ?driver))
KnowledgeWorks and Prolog User Guide (Unix version) - 24 Mar 2017