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).