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