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/tmplIX2KC/log2b-oi.pl
}
{loaded in 3384.211 msec.}
{preprocessed for plai in 0.0 msec.}
{analyzed by plai using det with local-control off in 64.004 msec.}
{written file /tmp/tmplIX2KC/log2b-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]), rt105(A), rt108(B) )
+ ( non_det, mut_exclusive ).
log2(X,Y) :-
log2(X,0,s(0),Y).
:- true pred log2(X,s(0),s(_1),Y)
: ( ground([X,Y,_1]), rt47(X), rt46(Y), rt44(_1) )
=> ( ground([X,Y,_1]), rt25(X), rt48(Y), rt50(_1) )
+ ( is_det, mut_exclusive ).
:- true pred log2(X,0,s(0),Y)
: ( native_props:mshare([[X]]), ground([Y]), term(X), gnd(Y) )
=> ( ground([X,Y]), rt105(X), rt108(Y) )
+ ( non_det, not_mut_exclusive ).
:- true pred log2(X,s(_1),Acc,Y)
: ( native_props:mshare([[X]]), ground([Acc,Y,_1]), term(X), rt7(Acc), gnd(Y), rt6(_1) )
=> ( ground([X,Acc,Y,_1]), rt99(X), rt96(Acc), rt97(Y), rt93(_1) )
+ ( non_det, not_mut_exclusive ).
:- true pred log2(X,s(_1),Acc,Y)
: ( native_props:mshare([[X]]), ground([Acc,Y,_1]), term(X), rt7(Acc), gnd(Y), rt13(_1) )
=> ( ground([X,Acc,Y,_1]), rt89(X), rt86(Acc), rt87(Y), rt81(_1) )
+ ( non_det, not_mut_exclusive ).
:- true pred log2(X,s(0),s(_1),Y)
: ( ground([X,Y,_1]), rt14(X), gnd(Y), rt7(_1) )
=> ( ground([X,Y,_1]), rt74(X), rt72(Y), rt71(_1) )
+ ( non_det, not_mut_exclusive ).
:- true pred log2(X,s(_1),Acc,Y)
: ( ground([X,Acc,Y,_1]), term(X), rt32(Acc), rt34(Y), rt30(_1) )
=> ( ground([X,Acc,Y,_1]), rt39(X), rt63(Acc), rt65(Y), rt60(_1) )
+ ( non_det, not_mut_exclusive ).
log2(s(s(X)),Half,Acc,Y) :-
log2(X,s(Half),Acc,Y).
log2(X,s(s(Half)),Acc,Y) :-
small(X),
log2(Half,s(0),s(Acc),Y).
log2(X,Half,Y,Y) :-
small(X),
small(Half).
:- true pred small(_1)
: ( ground([_1]), rt8(_1) )
=> ( ground([_1]), rt9(_1) )
+ ( is_det, mut_exclusive ).
:- true pred small(_1)
: ( ground([_1]), rt14(_1) )
=> ( ground([_1]), rt25(_1) )
+ ( is_det, mut_exclusive ).
:- true pred small(_1)
: ( ground([_1]), term(_1) )
=> ( ground([_1]), rt39(_1) )
+ ( is_det, mut_exclusive ).
:- true pred small(_1)
: ( ground([_1]), rt15(_1) )
=> ( ground([_1]), rt16(_1) )
+ ( is_det, mut_exclusive ).
:- true pred small(_1)
: ( native_props:mshare([[_1]]), term(_1) )
=> ( ground([_1]), rt4(_1) )
+ ( is_det, mut_exclusive ).
:- true pred small(_1)
: ( ground([_1]), rt0(_1) )
=> ( ground([_1]), rt5(_1) )
+ ( is_det, mut_exclusive ).
small(0).
small(s(0)).
:- regtype rt47/1.
rt47(0).
rt47(s(A)) :-
rt47(A).
:- regtype rt46/1.
rt46(A) :-
gnd(A).
:- regtype rt44/1.
rt44(s(A)) :-
rt45(A).
:- regtype rt25/1.
rt25(0).
rt25(s(0)).
:- regtype rt48/1.
rt48(s(s(A))) :-
rt45(A).
:- regtype rt45/1.
rt45(0).
rt45(s(A)) :-
rt45(A).
:- regtype rt50/1.
rt50(s(A)) :-
rt45(A).
:- regtype rt107/1.
rt107(0).
rt107(s(A)) :-
rt106(A).
:- regtype rt106/1.
rt106(0).
rt106(s(A)) :-
rt107(A).
:- regtype rt105/1.
rt105(0).
rt105(s(A)) :-
rt106(A).
:- regtype rt109/1.
rt109(0).
rt109(s(A)) :-
rt98(A).
:- regtype rt108/1.
rt108(s(A)) :-
rt109(A).
:- regtype rt7/1.
rt7(s(0)).
:- regtype rt6/1.
rt6(0).
:- regtype rt101/1.
rt101(0).
rt101(s(A)) :-
rt100(A).
:- regtype rt100/1.
rt100(0).
rt100(s(A)) :-
rt101(A).
:- regtype rt99/1.
rt99(0).
rt99(s(A)) :-
rt100(A).
:- regtype rt96/1.
rt96(0).
rt96(s(A)) :-
rt96(A).
:- regtype rt98/1.
rt98(0).
rt98(s(A)) :-
rt98(A).
:- regtype rt97/1.
rt97(s(A)) :-
rt98(A).
:- regtype rt95/1.
rt95(0).
rt95(s(A)) :-
rt94(A).
:- regtype rt94/1.
rt94(0).
rt94(s(A)) :-
rt95(A).
:- regtype rt93/1.
rt93(0).
rt93(s(A)) :-
rt94(A).
:- regtype rt13/1.
rt13(0).
rt13(s(A)) :-
rt14(A).
:- regtype rt89/1.
rt89(0).
rt89(s(0)).
:- regtype rt86/1.
rt86(0).
rt86(s(A)) :-
rt86(A).
:- regtype rt88/1.
rt88(0).
rt88(s(A)) :-
rt88(A).
:- regtype rt87/1.
rt87(s(A)) :-
rt88(A).
:- regtype rt85/1.
rt85(0).
rt85(s(A)) :-
rt84(A).
:- regtype rt84/1.
rt84(0).
rt84(s(A)) :-
rt85(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 rt14/1.
rt14(0).
rt14(s(A)) :-
rt14(A).
:- regtype rt77/1.
rt77(0).
rt77(s(A)) :-
rt77(A).
:- regtype rt76/1.
rt76(0).
rt76(s(A)) :-
rt77(A).
:- regtype rt75/1.
rt75(0).
rt75(s(A)) :-
rt76(A).
:- regtype rt74/1.
rt74(0).
rt74(s(A)) :-
rt75(A).
:- regtype rt73/1.
rt73(0).
rt73(s(A)) :-
rt73(A).
:- regtype rt72/1.
rt72(s(A)) :-
rt73(A).
:- regtype rt71/1.
rt71(0).
rt71(s(A)) :-
rt71(A).
:- regtype rt33/1.
rt33(0).
rt33(s(A)) :-
rt33(A).
:- regtype rt32/1.
rt32(s(A)) :-
rt33(A).
:- regtype rt34/1.
rt34(A) :-
gnd(A).
:- regtype rt31/1.
rt31(0).
rt31(s(A)) :-
rt31(A).
:- regtype rt30/1.
rt30(0).
rt30(s(A)) :-
rt31(A).
:- regtype rt39/1.
rt39(0).
rt39(s(0)).
:- regtype rt64/1.
rt64(0).
rt64(s(A)) :-
rt64(A).
:- regtype rt63/1.
rt63(s(A)) :-
rt64(A).
:- regtype rt66/1.
rt66(0).
rt66(s(A)) :-
rt66(A).
:- regtype rt65/1.
rt65(s(A)) :-
rt66(A).
:- regtype rt61/1.
rt61(0).
rt61(s(A)) :-
rt61(A).
:- regtype rt60/1.
rt60(0).
rt60(s(A)) :-
rt61(A).
:- regtype rt8/1.
rt8(s(A)) :-
rt6(A).
:- regtype rt9/1.
rt9(s(0)).
:- regtype rt15/1.
rt15(s(A)) :-
rt13(A).
:- regtype rt16/1.
rt16(s(0)).
:- regtype rt4/1.
rt4(0).
rt4(s(0)).
:- regtype rt0/1.
rt0(0).
:- regtype rt5/1.
rt5(0).