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/tmpmDlwV7/log2a-oi.pl
}
{loaded in 3404.212 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 20.001 msec.}
{written file /tmp/tmpmDlwV7/log2a-oi_det_co.pl}
:- module(_1,[log2/2],[assertions]).
:- entry log2(A,B)
: ground(B).
:- true pred log2(A,B)
: ( native_props:mshare([[A]]), ground([B]), term(A), gnd(B) )
=> ( ground([A,B]), rt80(A), rt85(B) )
+ ( is_det, mut_exclusive ).
log2(X,Y) :-
log2(X,0,Y).
:- true pred log2(_1,0,I)
: ( native_props:mshare([[_1]]), ground([I]), term(_1), gnd(I) )
=> ( ground([_1,I]), rt80(_1), rt85(I) )
+ ( is_det, mut_exclusive ).
:- true pred log2(_1,s(_2),I)
: ( ground([_1,I,_2]), rt21(_1), gnd(I), rt5(_2) )
=> ( ground([_1,I,_2]), rt71(_1), rt68(I), rt67(_2) )
+ ( is_det, mut_exclusive ).
:- true pred log2(_1,s(_2),I)
: ( ground([_1,I,_2]), rt44(_1), gnd(I), rt42(_2) )
=> ( ground([_1,I,_2]), rt59(_1), rt47(I), rt58(_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), term(_2) )
=> ( ground([_1,_2]), rt40(_1), rt35(_2) )
+ ( is_det, mut_exclusive ).
:- true pred half(_1,_2)
: ( native_props:mshare([[_2]]), var(_2), ground([_1]), term(_1), term(_2) )
=> ( ground([_1,_2]), rt35(_1), rt38(_2) )
+ ( is_det, mut_exclusive ).
:- true pred half(s(s(_2)),_1)
: ( native_props:mshare([[_1],[_2]]), var(_1), term(_1), term(_2) )
=> ( ground([_1,_2]), rt21(_1), rt16(_2) )
+ ( is_det, mut_exclusive ).
:- true pred half(_1,_2)
: ( native_props:mshare([[_1],[_2]]), var(_2), term(_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 rt84/1.
rt84(0).
rt84(s(A)) :-
rt83(A).
:- regtype rt83/1.
rt83(0).
rt83(s(A)) :-
rt84(A).
:- regtype rt82/1.
rt82(0).
rt82(s(A)) :-
rt83(A).
:- regtype rt81/1.
rt81(0).
rt81(s(A)) :-
rt82(A).
:- regtype rt80/1.
rt80(0).
rt80(s(A)) :-
rt81(A).
:- regtype rt87/1.
rt87(0).
rt87(s(A)) :-
rt87(A).
:- regtype rt86/1.
rt86(0).
rt86(s(A)) :-
rt87(A).
:- regtype rt85/1.
rt85(0).
rt85(s(A)) :-
rt86(A).
:- regtype rt21/1.
rt21(s(A)) :-
rt19(A).
:- regtype rt5/1.
rt5(0).
:- regtype rt75/1.
rt75(0).
rt75(s(A)) :-
rt74(A).
:- regtype rt74/1.
rt74(0).
rt74(s(A)) :-
rt75(A).
:- regtype rt73/1.
rt73(0).
rt73(s(A)) :-
rt74(A).
:- regtype rt72/1.
rt72(0).
rt72(s(A)) :-
rt73(A).
:- regtype rt71/1.
rt71(s(A)) :-
rt72(A).
:- regtype rt70/1.
rt70(0).
rt70(s(A)) :-
rt70(A).
:- regtype rt69/1.
rt69(0).
rt69(s(A)) :-
rt70(A).
:- regtype rt68/1.
rt68(s(A)) :-
rt69(A).
:- regtype rt67/1.
rt67(0).
rt67(s(A)) :-
rt67(A).
:- regtype rt46/1.
rt46(0).
rt46(s(A)) :-
rt46(A).
:- regtype rt45/1.
rt45(0).
rt45(s(A)) :-
rt46(A).
:- regtype rt44/1.
rt44(s(A)) :-
rt45(A).
:- regtype rt43/1.
rt43(0).
rt43(s(A)) :-
rt43(A).
:- regtype rt42/1.
rt42(0).
rt42(s(A)) :-
rt43(A).
:- regtype rt63/1.
rt63(0).
rt63(s(A)) :-
rt62(A).
:- regtype rt62/1.
rt62(0).
rt62(s(A)) :-
rt63(A).
:- regtype rt61/1.
rt61(0).
rt61(s(A)) :-
rt62(A).
:- regtype rt60/1.
rt60(0).
rt60(s(A)) :-
rt61(A).
:- regtype rt59/1.
rt59(s(A)) :-
rt60(A).
:- regtype rt47/1.
rt47(s(A)) :-
rt42(A).
:- regtype rt58/1.
rt58(0).
rt58(s(A)) :-
rt58(A).
:- regtype rt40/1.
rt40(s(A)) :-
rt38(A).
:- regtype rt37/1.
rt37(0).
rt37(s(A)) :-
rt36(A).
:- regtype rt36/1.
rt36(0).
rt36(s(A)) :-
rt37(A).
:- regtype rt35/1.
rt35(0).
rt35(s(A)) :-
rt36(A).
:- regtype rt39/1.
rt39(0).
rt39(s(A)) :-
rt39(A).
:- regtype rt38/1.
rt38(0).
rt38(s(A)) :-
rt39(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).