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