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.