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/tmp31TdYm/quot1.pl
}
{loaded in 3424.215 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 32.002 msec.}
{written file /tmp/tmp31TdYm/quot1_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]), rt64(A), rt2(B), rt66(C) )
         + ( is_det, mut_exclusive ).

div(X,Y,Z) :-
        quot(X,Y,Y,Z).

:- true pred quot(X,Y,Z,R)
         : ( native_props:mshare([[R]]), ground([X,Y,Z]), gnd(X), term(Y), rt3(Z), term(R) )
        => ( ground([X,Y,Z,R]), rt27(X), rt29(Y), rt25(Z), rt16(R) )
         + ( is_det, mut_exclusive ).

:- true pred quot(X,Y,Y,R)
         : ( native_props:mshare([[R]]), ground([X,Y]), gnd(X), gnd(Y), term(R) )
        => ( ground([X,Y,R]), rt64(X), rt2(Y), rt66(R) )
         + ( is_det, mut_exclusive ).

:- true pred quot(X,Y,Z,R)
         : ( native_props:mshare([[R]]), ground([X,Y,Z]), gnd(X), gnd(Y), gnd(Z), term(R) )
        => ( ground([X,Y,Z,R]), rt53(X), rt58(Y), rt49(Z), rt51(R) )
         + ( is_det, mut_exclusive ).

:- true pred quot(X,Y,Y,R)
         : ( native_props:mshare([[R]]), ground([X,Y]), gnd(X), rt3(Y), term(R) )
        => ( ground([X,Y,R]), rt33(X), rt35(Y), rt37(R) )
         + ( is_det, mut_exclusive ).

quot(0,s(Y),s(Z),R) :-
        !,
        eq(R,0).
quot(X,0,Z,U) :-
        !,
        eq(Z,s(_1)),
        p(U,P),
        quot(X,Z,Z,P).
quot(s(X),Y,Z,U) :-
        p(Y,P),
        quot(X,P,Z,U).

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

:- true pred p(_1,X)
         : ( native_props:mshare([[_1],[X]]), var(X), term(_1), term(X) )
        => ( native_props:mshare([[_1,X]]), rt7(_1), term(X) )
         + ( is_det, mut_exclusive ).

:- true pred p(_1,X)
         : ( native_props:mshare([[X]]), var(X), ground([_1]), term(_1), term(X) )
        => ( ground([_1,X]), rt22(_1), term(X) )
         + ( is_det, mut_exclusive ).

:- true pred p(_1,X)
         : ( native_props:mshare([[X]]), var(X), ground([_1]), rt3(_1), term(X) )
        => ( ground([_1,X]), rt10(_1), term(X) )
         + ( is_det, mut_exclusive ).

p(0,0).
p(s(X),X).

:- true pred eq(X,s(_1))
         : ( native_props:mshare([[_1]]), var(_1), ground([X]), gnd(X), term(_1) )
        => ( ground([X,_1]), rt3(X), term(_1) )
         + ( is_det, mut_exclusive ).

:- true pred eq(X,0)
         : ( native_props:mshare([[X]]), term(X) )
        => ( ground([X]), rt0(X) )
         + ( is_det, mut_exclusive ).

:- true pred eq(X,s(_1))
         : ( native_props:mshare([[_1]]), var(_1), ground([X]), rt3(X), term(_1) )
        => ( ground([X,_1]), rt3(X), term(_1) )
         + ( is_det, mut_exclusive ).

eq(X,X).


:- regtype rt3/1.

rt3(s(A)) :-
        term(A).


:- regtype rt28/1.

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


:- regtype rt27/1.

rt27(0).
rt27(s(A)) :-
        rt28(A).


:- regtype rt30/1.

rt30(0).
rt30(A) :-
        term(A).
rt30(s(A)) :-
        rt30(A).


:- regtype rt29/1.

rt29(0).
rt29(s(A)) :-
        rt30(A).


:- regtype rt26/1.

rt26(A) :-
        term(A).


:- regtype rt25/1.

rt25(s(A)) :-
        rt26(A).


:- regtype rt17/1.

rt17(0).
rt17(A) :-
        term(A).
rt17(s(A)) :-
        rt17(A).


:- regtype rt16/1.

rt16(0).
rt16(s(A)) :-
        rt17(A).


:- regtype rt65/1.

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


:- regtype rt64/1.

rt64(0).
rt64(s(A)) :-
        rt65(A).


:- regtype rt2/1.

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


:- regtype rt67/1.

rt67(0).
rt67(A) :-
        term(A).
rt67(s(A)) :-
        rt67(A).


:- regtype rt66/1.

rt66(0).
rt66(s(A)) :-
        rt67(A).


:- regtype rt54/1.

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


:- regtype rt53/1.

rt53(0).
rt53(s(A)) :-
        rt54(A).


:- regtype rt59/1.

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


:- regtype rt58/1.

rt58(0).
rt58(s(A)) :-
        rt59(A).


:- regtype rt50/1.

rt50(A) :-
        term(A).


:- regtype rt49/1.

rt49(s(A)) :-
        rt50(A).


:- regtype rt52/1.

rt52(0).
rt52(A) :-
        term(A).
rt52(s(A)) :-
        rt52(A).


:- regtype rt51/1.

rt51(0).
rt51(s(A)) :-
        rt52(A).


:- regtype rt43/1.

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


:- regtype rt34/1.

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


:- regtype rt33/1.

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


:- regtype rt36/1.

rt36(A) :-
        term(A).


:- regtype rt35/1.

rt35(s(A)) :-
        rt36(A).


:- regtype rt38/1.

rt38(0).
rt38(A) :-
        term(A).
rt38(s(A)) :-
        rt38(A).


:- regtype rt37/1.

rt37(0).
rt37(s(A)) :-
        rt38(A).


:- regtype rt7/1.

rt7(0).
rt7(s(A)) :-
        term(A).


:- regtype rt0/1.

rt0(0).


:- regtype rt22/1.

rt22(0).
rt22(s(A)) :-
        term(A).


:- regtype rt10/1.

rt10(s(A)) :-
        term(A).