:- module( _, [combNoRep/2], [assertions , regtypes , basicmodes , nativeprops] ).

combNoRep([[num(int(A)),num(int(B))]],[num(int(-1))]) :-
        A<B .
combNoRep([[num(int(A)),num(int(B))]],[num(int(-1))]) :-
        A>=B,
        B<0 .
combNoRep([[num(int(A)),num(int(B))]],[num(int(1))]) :-
        A>=B,
        B>=0,
        B=<0 .
combNoRep([[num(int(A)),num(int(B))]],[C]) :-
        A>=B,
        B>=0,
        B>0,
        D is 1*B,
        E is 1*A,
        F is B+ -1,
        G is A+ -1,
        execute_notrace_1(G,F,E,D,_1,_2,_3,_4,_5,C,_6) .

execute_notrace_1(_1,A,B,C,[],_2,_3,_4,_5,num(int(D)),[]) :-
        A=<0,
        C=\=0,
        D is B//C .
execute_notrace_1(_1,A,_2,0,[[]],_3,_4,_5,_6,refE(loc(1)),[]) :-
        A=<0 .
execute_notrace_1(A,B,C,D,E,F,G,H,I,J,K) :-
        B>0,
        L is D*B,
        M is C*A,
        N is B+ -1,
        O is A+ -1,
        execute_notrace_1(O,N,M,L,E,F,G,H,I,J,K) .


