In meta-programming applications one needs to get a grip on the results
computed by the clp(Q,R) solver. You can use the predicates
dump/3
and/or call_residue/2
for that purpose:
clp(r) ?- {2*A+B+C=10,C-D=E,A<10}, dump([A,B,C,D,E],[a,b,c,d,e],Constraints). Constraints = [e<10.0,a=10.0-c-d-2.0*e,b=c+d], {C=10.0-2.0*A-B}, {E=10.0-2.0*A-B-D}, {A<10.0}
clp(r) ?- call_residue({2*A+B+C=10,C-D=E,A<10}, Constraints). Constraints = [ [A]-{A<10.0}, [B]-{B=10.0-2.0*A-C}, [D]-{D=C-E} ]