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,B,F,G,H),loop_cont_eval2(G,H,C,D,E)],[F=0,A>=1]). eq(eval1(A,B,C,D,E),1,[eval2(A,B,F,G,H)],[C=1,F=1,A>=1]). eq(eval2(A,B,C,D,E),1,[eval2(A,B-1,C,D,E)],[A>=1,B>=1]). 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,A>=1,0>=B]). eq(eval2(A,B,C,A,B),0,[],[C=1]).