row(1..5).
col(1..5).

1 { q(I, J) : row(I)} 1 :- col(J).

:- q(I, J), q(I, K), J != K.
:- q(I, J), q(K, J), I != K.
:- q(I, J), q(K, L), I != K, K-I = L-J.
:- q(I, J), q(K, L), I != K, K-I = J-L.

#show q/2.
