% THE N-QUEENS PROBLEM

% DOMAIN PREDICATES
row(1..n).
column(1..n).

% GENERATE
1{occupied(R,C):row(R)}1 :- column(C).

% TEST
:- occupied(R,C), occupied(R,C1),
   row(R), column(C), column(C1), C < C1.

:- occupied(R,C), occupied(R1,C1), 
   row(R), column(C), row(R1), column(C1), 
   C < C1, abs(R - R1) == abs(C - C1).

