Is Datalog negation and the built-in predicate $ \neq $ similar?
There was a misunderstanding in regards to the evaluation algorithm/minimal model. 

The derivation of new values is atomic e.g.:

step 1: 


p = {}
q = {}


step 2:


p = r
q = r


In step 2 p and q only see the value that each other had at step 1(the old value). I thought p and q would have access to the value of the current step and thus, the order of evaluation would produce different results.

To answer the question:

p(X) :- r(X) &amp; q(Y) &amp; X ≠ Y.

q(X) :- r(X) &amp; p(Y) &amp; X ≠ Y.

only has one minimal model: p = r and q = r.