/* Paul Y Gloess, http://www.enseirb.fr/~gloess/ Created on 26 April 2009, Last edition 26 April 2009. Purpose: ------- sumto CLP(Qlin) example: sumto(N, S) means that 0+...+N = S. */ sumto(N, S) :- % (sumtoZ). 0 ^= N, 0 ^= S. sumto(N, S) :- % (sumtoP). 1 ^<= N, N ^<= S, N-1 ^= NP, S-N ^= SN, sumto(NP, SN). /* reconsult(sumto), N+1 ^= S, sumto(N, S). reconsult(sumto), N+2 ^= S, sumto(N, S). reconsult(sumto), N+3 ^= S, sumto(N, S). reconsult(sumto), 2*N ^= S, sumto(N, S). */