eq(start(A,B),1,[eval1(A,B,C,D,E),loop_cont_eval1(D,E)],[C=0]). eq(start(A,B),1,[eval1(A,B,C,D,E)],[C=1]). eq(eval1(A,B,C,D,E),1,[eval2(A+1,1,F,G,H),loop_cont_eval2(G,H,C,D,E)],[F=0,A>=0]). eq(eval1(A,B,C,D,E),1,[eval2(A+1,1,F,G,H)],[C=1,F=1,A>=0]). eq(eval2(A,B,C,D,E),1,[eval2(A,B+1,C,D,E)],[A>=0,B>=1,A>=B]). eq(loop_cont_eval2(A,B,C,D,E),0,[eval1(A,B,C,D,E)],[]). eq(eval1(A,B,C,A,B),0,[],[C=1]). eq(eval2(A,B,C,A-2,B),1,[],[C=0,A>=0,B>=1,B>=A+1]). eq(eval2(A,B,C,A,B),0,[],[C=1]).