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.
{loaded in 3388.213 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 12.001 msec.}
{written file /tmp/tmpq9YMg1/mult_det_co.pl}
:- module(_1,[mult/3],[assertions]).
:- entry mult(A,B,C)
: ( ground(A), ground(B) ).
:- true pred mult(A,B,C)
: ( native_props:mshare([[C]]), ground([A,B]), gnd(A), gnd(B), term(C) )
=> ( ground([A,B,C]), gnd(A), rt29(B), rt32(C) )
+ ( is_det, mut_exclusive ).
:- true pred mult(A,B,C)
: ( native_props:mshare([[C]]), var(C), ground([A,B]), gnd(A), gnd(B), term(C) )
=> ( ground([A,B,C]), gnd(A), rt15(B), rt17(C) )
+ ( is_det, mut_exclusive ).
mult(_1,0,0).
mult(X,s(Y),Z) :-
mult(X,Y,W),
sum(W,X,Z).
:- true pred sum(X,_1,_2)
: ( native_props:mshare([[_2]]), ground([X,_1]), rt19(X), gnd(_1), term(_2) )
=> ( ground([X,_1,_2]), rt19(X), rt25(_1), rt19(_2) )
+ ( is_det, mut_exclusive ).
:- true pred sum(X,_1,_2)
: ( native_props:mshare([[_2]]), var(_2), ground([X,_1]), rt3(X), gnd(_1), term(_2) )
=> ( ground([X,_1,_2]), rt3(X), rt9(_1), rt11(_2) )
+ ( is_det, mut_exclusive ).
sum(X,0,X).
sum(X,s(Y),s(Z)) :-
sum(X,Y,Z).
:- regtype rt31/1.
rt31(0).
rt31(s(A)) :-
rt31(A).
:- regtype rt30/1.
rt30(0).
rt30(s(A)) :-
rt31(A).
:- regtype rt29/1.
rt29(0).
rt29(s(A)) :-
rt30(A).
:- regtype rt33/1.
rt33(0).
rt33(s(A)) :-
rt33(A).
:- regtype rt32/1.
rt32(0).
rt32(s(A)) :-
rt33(A).
:- regtype rt20/1.
rt20(0).
rt20(s(A)) :-
rt20(A).
:- regtype rt19/1.
rt19(0).
rt19(s(A)) :-
rt20(A).
:- regtype rt26/1.
rt26(0).
rt26(s(A)) :-
rt26(A).
:- regtype rt25/1.
rt25(0).
rt25(s(A)) :-
rt26(A).
:- regtype rt16/1.
rt16(0).
rt16(s(A)) :-
rt16(A).
:- regtype rt15/1.
rt15(0).
rt15(s(A)) :-
rt16(A).
:- regtype rt18/1.
rt18(0).
rt18(s(A)) :-
rt18(A).
:- regtype rt17/1.
rt17(0).
rt17(s(A)) :-
rt18(A).
:- regtype rt3/1.
rt3(0).
:- regtype rt10/1.
rt10(0).
rt10(s(A)) :-
rt10(A).
:- regtype rt9/1.
rt9(0).
rt9(s(A)) :-
rt10(A).
:- regtype rt12/1.
rt12(0).
rt12(s(A)) :-
rt12(A).
:- regtype rt11/1.
rt11(0).
rt11(s(A)) :-
rt12(A).