Ciao Preprocessor (integrated Alpha version)
 | This is an alpha distribution, meant only for testing. Please do let us 
 | know at ciaopp-bugclip.dia.fi.upm.es any problems you may have.

{Reading /tmp/tmpUJznAL/div.pl
}
{loaded in 3352.209 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 12.0 msec.}
{written file /tmp/tmpUJznAL/div_det_co.pl}
:- module(_1,[div/3],[assertions]).

:- entry div(A,B,C)
         : ( ground(A), ground(B) ).

:- true pred div(A,B,C)
         : ( native_props:mshare([[C]]), ground([A,B]), gnd(A), gnd(B), term(C) )
        => ( ground([A,B,C]), rt39(A), rt44(B), rt41(C) )
         + ( is_det, mut_exclusive ).

div(X,s(Y),Z) :-
        div_s(X,Y,Z).

:- true pred div_s(_1,Y,_2)
         : ( native_props:mshare([[_2]]), ground([_1,Y]), gnd(_1), gnd(Y), term(_2) )
        => ( ground([_1,Y,_2]), rt39(_1), gnd(Y), rt41(_2) )
         + ( is_det, mut_exclusive ).

:- true pred div_s(_1,Y,_2)
         : ( native_props:mshare([[_2]]), ground([_1,Y]), gnd(_1), rt19(Y), term(_2) )
        => ( ground([_1,Y,_2]), rt33(_1), rt25(Y), rt31(_2) )
         + ( is_det, mut_exclusive ).

div_s(0,Y,0).
div_s(s(X),Y,0) :-
        lss(X,Y).
div_s(s(X),Y,s(Z)) :-
        sub(X,Y,R),
        div_s(R,Y,Z).

:- true pred lss(_1,_2)
         : ( ground([_1,_2]), gnd(_1), gnd(_2) )
        => ( ground([_1,_2]), rt10(_1), rt8(_2) )
         + ( is_det, mut_exclusive ).

lss(s(X),s(Y)) :-
        lss(X,Y).
lss(0,s(Y)).

:- true pred sub(X,_1,Z)
         : ( native_props:mshare([[Z]]), var(Z), ground([X,_1]), gnd(X), gnd(_1), term(Z) )
        => ( ground([X,_1,Z]), gnd(X), rt19(_1), gnd(Z) )
         + ( is_det, mut_exclusive ).

sub(s(X),s(Y),Z) :-
        sub(X,Y,Z).
sub(X,0,X).


:- regtype rt40/1.

rt40(A) :-
        gnd(A).


:- regtype rt39/1.

rt39(0).
rt39(s(A)) :-
        rt40(A).


:- regtype rt44/1.

rt44(s(A)) :-
        gnd(A).


:- regtype rt43/1.

rt43(0).
rt43(s(A)) :-
        rt43(A).


:- regtype rt42/1.

rt42(0).
rt42(s(A)) :-
        rt43(A).


:- regtype rt41/1.

rt41(0).
rt41(s(A)) :-
        rt42(A).


:- regtype rt20/1.

rt20(0).
rt20(s(A)) :-
        rt20(A).


:- regtype rt19/1.

rt19(0).
rt19(s(A)) :-
        rt20(A).


:- regtype rt34/1.

rt34(0).
rt34(A) :-
        gnd(A).
rt34(s(A)) :-
        rt34(A).


:- regtype rt33/1.

rt33(0).
rt33(s(A)) :-
        rt34(A).


:- regtype rt25/1.

rt25(0).
rt25(s(A)) :-
        rt9(A).


:- regtype rt32/1.

rt32(0).
rt32(s(A)) :-
        rt32(A).


:- regtype rt31/1.

rt31(0).
rt31(s(A)) :-
        rt32(A).


:- regtype rt11/1.

rt11(0).
rt11(s(A)) :-
        rt11(A).


:- regtype rt10/1.

rt10(0).
rt10(s(A)) :-
        rt11(A).


:- regtype rt9/1.

rt9(A) :-
        gnd(A).
rt9(s(A)) :-
        rt9(A).


:- regtype rt8/1.

rt8(s(A)) :-
        rt9(A).