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/tmpCaHAkE/times.pl
}
{loaded in 3432.214 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 12.001 msec.}
{written file /tmp/tmpCaHAkE/times_det_co.pl}
:- module(_1,[times/3],[assertions]).

:- entry times(A,B,C)
         : ( ground(A), ground(B) ).

:- true pred times(A,B,C)
         : ( native_props:mshare([[C]]), ground([A,B]), gnd(A), gnd(B), term(C) )
        => ( ground([A,B,C]), rt39(A), gnd(B), rt42(C) )
         + ( is_det, mut_exclusive ).

times(X,Y,Z) :-
        mult(X,Y,0,Z).

:- true pred mult(X,Y,_1,Z)
         : ( native_props:mshare([[Z]]), ground([X,Y,_1]), gnd(X), gnd(Y), gnd(_1), term(Z) )
        => ( ground([X,Y,_1,Z]), rt15(X), gnd(Y), rt22(_1), rt24(Z) )
         + ( is_det, mut_exclusive ).

:- true pred mult(X,Y,0,Z)
         : ( native_props:mshare([[Z]]), ground([X,Y]), gnd(X), gnd(Y), term(Z) )
        => ( ground([X,Y,Z]), rt39(X), gnd(Y), rt42(Z) )
         + ( is_det, mut_exclusive ).

:- true pred mult(X,Y,Y,Z)
         : ( native_props:mshare([[Z]]), ground([X,Y]), gnd(X), gnd(Y), term(Z) )
        => ( ground([X,Y,Z]), rt35(X), rt30(Y), rt33(Z) )
         + ( is_det, mut_exclusive ).

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


:- regtype rt16/1.

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


:- regtype rt15/1.

rt15(0).
rt15(s(A)) :-
        rt16(A).


:- regtype rt23/1.

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


:- regtype rt22/1.

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


:- regtype rt25/1.

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


:- regtype rt24/1.

rt24(0).
rt24(s(A)) :-
        rt25(A).


:- regtype rt41/1.

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


:- regtype rt40/1.

rt40(0).
rt40(s(A)) :-
        rt41(A).


:- regtype rt39/1.

rt39(0).
rt39(s(A)) :-
        rt40(A).


:- regtype rt43/1.

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


:- regtype rt42/1.

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


:- regtype rt36/1.

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


:- regtype rt35/1.

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


:- regtype rt32/1.

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


:- regtype rt31/1.

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


:- regtype rt30/1.

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


:- regtype rt34/1.

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


:- regtype rt33/1.

rt33(0).
rt33(s(A)) :-
        rt34(A).