[ Control | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]

# not +Goal

Succeeds if Goal cannot be satisfied (uses negation as failure).

Goal
  Atom or compound term.

## Description

Used to fail if Goal succeeds. Uses the standard Prolog form of negation as failure.

To check whether a call Goal succeeds without binding variables, the call not not Goal can be used. Note that !/0 does not cut through not/1.

### Modes and Determinism

- not(+) is semidet

### Modules

This predicate is sensitive to its module context (tool predicate, see @/2).

### Fail Conditions

Fails if Goal succeeds

## Examples

    Success:
          not fail .
          not 1 == 2 .
          not X==1 .
          not not X = 1.
              % does not bind X
    Fail:
          not(X=1).
          not(true).
          not(3 == 3).

## See Also

\+ / 1, ~ / 1, -> / 2