Bad even/odd has no stratification

even(N) :- num(N), not odd(N).
odd(N)  :- num(N), not even(N).
Dependency graph of the even/odd program. A lower box, level 0, holds num. An upper box labelled 'level 1?' holds even and odd. Solid teal arrows point from even and odd down to num. Two red dashed arrows labelled with a minus sign form a cycle between even and odd: even negatively depends on odd, and odd negatively depends on even. The red cycle is the negative dependency that no level assignment can satisfy.
even negatively depends on odd and vice versa: not stratifiable, so Datamog rejects it.