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,0,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,0,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>=1+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-1,B),1,[],[C=0,B>=A]).