% select the number of queens
#const n=6.

% place queens
{ q(1..n,1..n) }.

% exactly one queen per column
:- { q(1..n,Y) } != 1, Y=1..n.

% exactly one queen per row
:- { q(X,1..n) } != 1, X=1..n.

% at most one queen per diagonal
:- { q(D-Y,Y) } >= 2, D=2..2*n.
:- { q(D+Y,Y) } >= 2, D=1-n..n-1.
  • Configuration:
  • projection
  • project anonymous in negative
  • mode
  • log level
  • models