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 3396.212 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 12.001 msec.}
{written file /tmp/tmp4A76IQ/log_det_co.pl}
:- module(_1,[log/2],[assertions]).
:- true pred half(s(_2),_1)
: ( native_props:mshare([[_1]]), var(_1), ground([_2]), term(_1), gnd(_2) )
=> ( ground([_1,_2]), rt27(_1), rt23(_2) )
+ ( is_det, mut_exclusive ).
:- true pred half(_1,_2)
: ( native_props:mshare([[_2]]), var(_2), ground([_1]), gnd(_1), term(_2) )
=> ( ground([_1,_2]), rt14(_1), rt17(_2) )
+ ( is_det, mut_exclusive ).
half(0,0).
half(s(0),0).
half(s(s(X)),s(Y)) :-
half(X,Y).
:- entry log(A,B)
: ground(A).
:- true pred log(A,B)
: ( native_props:mshare([[B]]), ground([A]), gnd(A), term(B) )
=> ( ground([A,B]), rt50(A), rt55(B) )
+ ( is_det, mut_exclusive ).
:- true pred log(A,B)
: ( native_props:mshare([[B]]), ground([A]), rt27(A), term(B) )
=> ( ground([A,B]), rt40(A), rt38(B) )
+ ( is_det, mut_exclusive ).
log(0,s(0)).
log(s(X),s(Y)) :-
half(s(X),Z),
log(Z,Y).
:- regtype rt54/1.
rt54(0).
rt54(s(A)) :-
rt53(A).
:- regtype rt53/1.
rt53(0).
rt53(s(A)) :-
rt54(A).
:- regtype rt52/1.
rt52(0).
rt52(s(A)) :-
rt53(A).
:- regtype rt51/1.
rt51(0).
rt51(s(A)) :-
rt52(A).
:- regtype rt50/1.
rt50(0).
rt50(s(A)) :-
rt51(A).
:- regtype rt57/1.
rt57(0).
rt57(s(A)) :-
rt57(A).
:- regtype rt56/1.
rt56(0).
rt56(s(A)) :-
rt57(A).
:- regtype rt55/1.
rt55(s(A)) :-
rt56(A).
:- regtype rt29/1.
rt29(0).
rt29(s(A)) :-
rt29(A).
:- regtype rt28/1.
rt28(0).
rt28(s(A)) :-
rt29(A).
:- regtype rt27/1.
rt27(0).
rt27(s(A)) :-
rt28(A).
:- regtype rt44/1.
rt44(0).
rt44(s(A)) :-
rt43(A).
:- regtype rt43/1.
rt43(0).
rt43(s(A)) :-
rt44(A).
:- regtype rt42/1.
rt42(0).
rt42(s(A)) :-
rt43(A).
:- regtype rt41/1.
rt41(0).
rt41(s(A)) :-
rt42(A).
:- regtype rt40/1.
rt40(0).
rt40(s(A)) :-
rt41(A).
:- regtype rt39/1.
rt39(0).
rt39(s(A)) :-
rt39(A).
:- regtype rt38/1.
rt38(s(A)) :-
rt39(A).
:- regtype rt26/1.
rt26(0).
rt26(s(A)) :-
rt25(A).
:- regtype rt25/1.
rt25(0).
rt25(s(A)) :-
rt26(A).
:- regtype rt24/1.
rt24(0).
rt24(s(A)) :-
rt25(A).
:- regtype rt23/1.
rt23(0).
rt23(s(A)) :-
rt24(A).
:- regtype rt16/1.
rt16(0).
rt16(s(A)) :-
rt15(A).
:- regtype rt15/1.
rt15(0).
rt15(s(A)) :-
rt16(A).
:- regtype rt14/1.
rt14(0).
rt14(s(A)) :-
rt15(A).
:- regtype rt18/1.
rt18(0).
rt18(s(A)) :-
rt18(A).
:- regtype rt17/1.
rt17(0).
rt17(s(A)) :-
rt18(A).