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