Evaluating literals

A literal is a positive atom or a negated atom:

  • even(N) succeeds for values of N in the relation even,
  • not even(N) for values of N not in it.

In odd(N) :- num(N), not even(N), for each N drawn from num:

Neven(N)?keep for odd?
3no
4yes
not even(N) is checked against the fully computed relation even, so even must be known in full before odd is evaluated.