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/tmpNitS1A/log2a.pl
}
{loaded in 3368.21 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 16.001 msec.}
{written file /tmp/tmpNitS1A/log2a_det_co.pl}
:- module(_1,[log2/2],[assertions]).
:- entry log2(A,B)
: ground(A).
:- true pred log2(A,B)
: ( native_props:mshare([[B]]), ground([A]), gnd(A), term(B) )
=> ( ground([A,B]), rt66(A), rt71(B) )
+ ( is_det, mut_exclusive ).
log2(X,Y) :-
log2(X,0,Y).
:- true pred log2(_1,0,I)
: ( native_props:mshare([[I]]), ground([_1]), gnd(_1), term(I) )
=> ( ground([_1,I]), rt66(_1), rt71(I) )
+ ( is_det, mut_exclusive ).
:- true pred log2(_1,s(_2),I)
: ( native_props:mshare([[I]]), ground([_1,_2]), rt21(_1), term(I), rt5(_2) )
=> ( ground([_1,I,_2]), rt57(_1), rt54(I), rt53(_2) )
+ ( is_det, mut_exclusive ).
:- true pred log2(_1,s(_2),I)
: ( native_props:mshare([[I]]), ground([_1,_2]), rt29(_1), term(I), rt27(_2) )
=> ( ground([_1,I,_2]), rt45(_1), rt32(I), rt44(_2) )
+ ( is_det, mut_exclusive ).
log2(0,I,I).
log2(s(0),I,I).
log2(s(s(X)),I,Y) :-
half(s(s(X)),X1),
log2(X1,s(I),Y).
:- true pred half(s(s(_2)),_1)
: ( native_props:mshare([[_1]]), var(_1), ground([_2]), term(_1), gnd(_2) )
=> ( ground([_1,_2]), rt21(_1), rt16(_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]), rt16(_1), rt19(_2) )
+ ( is_det, mut_exclusive ).
half(0,0).
half(s(0),0).
half(s(s(X)),s(Y)) :-
half(X,Y).
:- regtype rt70/1.
rt70(0).
rt70(s(A)) :-
rt69(A).
:- regtype rt69/1.
rt69(0).
rt69(s(A)) :-
rt70(A).
:- regtype rt68/1.
rt68(0).
rt68(s(A)) :-
rt69(A).
:- regtype rt67/1.
rt67(0).
rt67(s(A)) :-
rt68(A).
:- regtype rt66/1.
rt66(0).
rt66(s(A)) :-
rt67(A).
:- regtype rt73/1.
rt73(0).
rt73(s(A)) :-
rt73(A).
:- regtype rt72/1.
rt72(0).
rt72(s(A)) :-
rt73(A).
:- regtype rt71/1.
rt71(0).
rt71(s(A)) :-
rt72(A).
:- regtype rt21/1.
rt21(s(A)) :-
rt19(A).
:- regtype rt5/1.
rt5(0).
:- regtype rt61/1.
rt61(0).
rt61(s(A)) :-
rt60(A).
:- regtype rt60/1.
rt60(0).
rt60(s(A)) :-
rt61(A).
:- regtype rt59/1.
rt59(0).
rt59(s(A)) :-
rt60(A).
:- regtype rt58/1.
rt58(0).
rt58(s(A)) :-
rt59(A).
:- regtype rt57/1.
rt57(s(A)) :-
rt58(A).
:- regtype rt56/1.
rt56(0).
rt56(s(A)) :-
rt56(A).
:- regtype rt55/1.
rt55(0).
rt55(s(A)) :-
rt56(A).
:- regtype rt54/1.
rt54(s(A)) :-
rt55(A).
:- regtype rt53/1.
rt53(0).
rt53(s(A)) :-
rt53(A).
:- regtype rt31/1.
rt31(0).
rt31(s(A)) :-
rt31(A).
:- regtype rt30/1.
rt30(0).
rt30(s(A)) :-
rt31(A).
:- regtype rt29/1.
rt29(s(A)) :-
rt30(A).
:- regtype rt28/1.
rt28(0).
rt28(s(A)) :-
rt28(A).
:- regtype rt27/1.
rt27(0).
rt27(s(A)) :-
rt28(A).
:- regtype rt49/1.
rt49(0).
rt49(s(A)) :-
rt48(A).
:- regtype rt48/1.
rt48(0).
rt48(s(A)) :-
rt49(A).
:- regtype rt47/1.
rt47(0).
rt47(s(A)) :-
rt48(A).
:- regtype rt46/1.
rt46(0).
rt46(s(A)) :-
rt47(A).
:- regtype rt45/1.
rt45(s(A)) :-
rt46(A).
:- regtype rt32/1.
rt32(s(A)) :-
rt27(A).
:- regtype rt44/1.
rt44(0).
rt44(s(A)) :-
rt44(A).
:- regtype rt18/1.
rt18(0).
rt18(s(A)) :-
rt17(A).
:- regtype rt17/1.
rt17(0).
rt17(s(A)) :-
rt18(A).
:- regtype rt16/1.
rt16(0).
rt16(s(A)) :-
rt17(A).
:- regtype rt20/1.
rt20(0).
rt20(s(A)) :-
rt20(A).
:- regtype rt19/1.
rt19(0).
rt19(s(A)) :-
rt20(A).