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/tmpi6LVP_/quot.pl
}
{loaded in 3360.21 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 36.002 msec.}
{written file /tmp/tmpi6LVP_/quot_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]), rt42(A), rt45(B), rt47(C) )
         + ( is_det, mut_exclusive ).

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

:- true pred quot(X,s(_1),s(_1),U)
         : ( native_props:mshare([[U]]), ground([X,_1]), gnd(X), term(U), gnd(_1) )
        => ( ground([X,U,_1]), rt21(X), rt23(U), gnd(_1) )
         + ( is_det, mut_exclusive ).

:- true pred quot(X,Z,Z,U)
         : ( native_props:mshare([[U]]), ground([X,Z]), gnd(X), gnd(Z), term(U) )
        => ( ground([X,Z,U]), rt42(X), rt45(Z), rt47(U) )
         + ( is_det, mut_exclusive ).

:- true pred quot(X,Z,_1,U)
         : ( native_props:mshare([[U]]), ground([X,Z,_1]), gnd(X), gnd(Z), gnd(_1), term(U) )
        => ( ground([X,Z,_1,U]), rt33(X), rt35(Z), rt29(_1), rt31(U) )
         + ( is_det, mut_exclusive ).

quot(0,s(Y),s(Z),0).
quot(s(X),s(Y),Z,U) :-
        quot(X,Y,Z,U).
quot(X,0,s(Z),s(U)) :-
        quot(X,s(Z),s(Z),U).


:- regtype rt22/1.

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


:- regtype rt21/1.

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


:- regtype rt23/1.

rt23(0).


:- regtype rt44/1.

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


:- regtype rt43/1.

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


:- regtype rt42/1.

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


:- regtype rt46/1.

rt46(A) :-
        gnd(A).


:- regtype rt45/1.

rt45(s(A)) :-
        rt46(A).


:- regtype rt48/1.

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


:- regtype rt47/1.

rt47(0).
rt47(s(A)) :-
        rt48(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(0).
rt36(A) :-
        gnd(A).
rt36(s(A)) :-
        rt36(A).


:- regtype rt35/1.

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


:- regtype rt30/1.

rt30(A) :-
        gnd(A).


:- regtype rt29/1.

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


:- regtype rt32/1.

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


:- regtype rt31/1.

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