num(1..4). data(1..16). weight wt(1) = 1. weight wt(2) = 2. weight wt(3) = 3. weight wt(4) = 4. weight wt(5) = 5. weight wt(6) = 6. weight wt(7) = 7. weight wt(8) = 8. weight wt(9) = 9. weight wt(10) = 10. weight wt(11) = 11. weight wt(12) = 12. weight wt(13) = 13. weight wt(14) = 14. weight wt(15) = 15. weight wt(16) = 16. 1{sqr(I,J,D):num(I;J)}1 :- data(D). 1{sqr(I,J,D):data(D)}1 :- num(I;J). 34 [ sqr(I, J, A) : num(J) : data(A) = weight(wt(A)) ] 34 :- num(I). 34 [ sqr(I, J, A) : num(I) : data(A) = weight(wt(A)) ] 34 :- num(J). 34 [ sqr(I, I, A) : num(I) : data(A) = weight(wt(A)) ] 34. 34 [ sqr(I, 5-I, A) : num(I;5-I) : data(A) = weight(wt(A)) ] 34.