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 3380.211 msec.}
{preprocessed for plai in 4.0 msec.}
{analyzed by plai using det with local-control off in 28.002 msec.}
{written file /tmp/tmpC6Iqws/fib_t_det_co.pl}
:- module(_1,[fib/2],[assertions]).
:- true pred add(X,Y,_1)
: ( native_props:mshare([[_1]]), ground([X,Y]), rt58(X), rt60(Y), term(_1) )
=> ( ground([X,Y,_1]), rt88(X), rt79(Y), rt86(_1) )
+ ( non_det, not_mut_exclusive ).
:- true pred add(X,Y,_1)
: ( native_props:mshare([[_1]]), ground([X,Y]), rt64(X), rt62(Y), term(_1) )
=> ( ground([X,Y,_1]), rt72(X), rt79(Y), rt74(_1) )
+ ( non_det, not_mut_exclusive ).
:- true pred add(X,Y,_1)
: ( native_props:mshare([[_1]]), var(_1), ground([X,Y]), rt14(X), rt27(Y), term(_1) )
=> ( ground([X,Y,_1]), rt47(X), rt37(Y), rt42(_1) )
+ ( non_det, not_mut_exclusive ).
:- true pred add(X,Y,_1)
: ( native_props:mshare([[_1]]), var(_1), ground([X,Y]), rt7(X), rt9(Y), term(_1) )
=> ( ground([X,Y,_1]), rt15(X), rt11(Y), rt14(_1) )
+ ( is_det, mut_exclusive ).
:- true pred add(X,Y,_1)
: ( native_props:mshare([[_1]]), var(_1), ground([X,Y]), rt13(X), rt27(Y), term(_1) )
=> ( ground([X,Y,_1]), rt39(X), rt37(Y), rt40(_1) )
+ ( is_det, mut_exclusive ).
:- true pred add(X,Y,_1)
: ( native_props:mshare([[_1]]), var(_1), ground([X,Y]), rt10(X), rt9(Y), term(_1) )
=> ( ground([X,Y,_1]), rt12(X), rt11(Y), rt13(_1) )
+ ( is_det, mut_exclusive ).
add(0,0,0).
add(s(X),Y,s(N)) :-
add(X,Y,N).
add(X,s(Y),s(N)) :-
add(X,Y,N).
:- entry fib(A,B)
: ground(A).
:- true pred fib(A,B)
: ( native_props:mshare([[B]]), ground([A]), gnd(A), term(B) )
=> ( ground([A,B]), rt94(A), rt99(B) )
+ ( non_det, mut_exclusive ).
:- true pred fib(A,B)
: ( native_props:mshare([[B]]), var(B), ground([A]), rt20(A), term(B) )
=> ( ground([A,B]), rt53(A), rt56(B) )
+ ( non_det, mut_exclusive ).
:- true pred fib(s(_1),B)
: ( native_props:mshare([[B]]), var(B), ground([_1]), term(B), gnd(_1) )
=> ( ground([B,_1]), rt14(B), rt18(_1) )
+ ( is_det, mut_exclusive ).
:- true pred fib(A,B)
: ( native_props:mshare([[B]]), var(B), ground([A]), rt6(A), term(B) )
=> ( ground([A,B]), rt8(A), rt9(B) )
+ ( is_det, mut_exclusive ).
fib(0,0).
fib(s(0),s(0)).
fib(s(s(X)),N) :-
fib(s(X),N1),
fib(X,N2),
add(N1,N2,N).
:- regtype rt98/1.
rt98(0).
rt98(s(A)) :-
rt97(A).
:- regtype rt97/1.
rt97(0).
rt97(s(A)) :-
rt98(A).
:- regtype rt96/1.
rt96(0).
rt96(s(A)) :-
rt97(A).
:- regtype rt95/1.
rt95(0).
rt95(s(A)) :-
rt96(A).
:- regtype rt94/1.
rt94(0).
rt94(s(A)) :-
rt95(A).
:- regtype rt100/1.
rt100(0).
rt100(s(A)) :-
rt87(A).
:- regtype rt99/1.
rt99(0).
rt99(s(A)) :-
rt100(A).
:- regtype rt59/1.
rt59(0).
rt59(s(A)) :-
rt59(A).
:- regtype rt58/1.
rt58(s(A)) :-
rt59(A).
:- regtype rt61/1.
rt61(0).
rt61(s(A)) :-
rt61(A).
:- regtype rt60/1.
rt60(0).
rt60(s(A)) :-
rt61(A).
:- regtype rt89/1.
rt89(0).
rt89(s(A)) :-
rt89(A).
:- regtype rt88/1.
rt88(0).
rt88(s(A)) :-
rt89(A).
:- regtype rt80/1.
rt80(0).
rt80(s(A)) :-
rt80(A).
:- regtype rt79/1.
rt79(0).
rt79(s(A)) :-
rt80(A).
:- regtype rt87/1.
rt87(0).
rt87(s(A)) :-
rt87(A).
:- regtype rt86/1.
rt86(s(A)) :-
rt87(A).
:- regtype rt64/1.
rt64(0).
rt64(s(A)) :-
rt64(A).
:- regtype rt63/1.
rt63(0).
rt63(s(A)) :-
rt63(A).
:- regtype rt62/1.
rt62(0).
rt62(s(A)) :-
rt63(A).
:- regtype rt73/1.
rt73(0).
rt73(s(A)) :-
rt73(A).
:- regtype rt72/1.
rt72(0).
rt72(s(A)) :-
rt73(A).
:- regtype rt75/1.
rt75(0).
rt75(s(A)) :-
rt75(A).
:- regtype rt74/1.
rt74(0).
rt74(s(A)) :-
rt75(A).
:- regtype rt21/1.
rt21(0).
rt21(s(A)) :-
rt21(A).
:- regtype rt20/1.
rt20(0).
rt20(s(A)) :-
rt21(A).
:- regtype rt55/1.
rt55(0).
rt55(s(A)) :-
rt54(A).
:- regtype rt54/1.
rt54(0).
rt54(s(A)) :-
rt55(A).
:- regtype rt53/1.
rt53(0).
rt53(s(A)) :-
rt54(A).
:- regtype rt57/1.
rt57(0).
rt57(s(A)) :-
rt57(A).
:- regtype rt56/1.
rt56(0).
rt56(s(A)) :-
rt57(A).
:- regtype rt14/1.
rt14(s(A)) :-
rt13(A).
:- regtype rt27/1.
rt27(0).
rt27(s(0)).
:- regtype rt48/1.
rt48(0).
rt48(s(A)) :-
rt48(A).
:- regtype rt47/1.
rt47(s(A)) :-
rt48(A).
:- regtype rt38/1.
rt38(0).
rt38(s(A)) :-
rt38(A).
:- regtype rt37/1.
rt37(0).
rt37(s(A)) :-
rt38(A).
:- regtype rt42/1.
rt42(s(A)) :-
rt40(A).
:- regtype rt7/1.
rt7(s(0)).
:- regtype rt9/1.
rt9(0).
:- regtype rt15/1.
rt15(s(A)) :-
rt12(A).
:- regtype rt11/1.
rt11(0).
:- regtype rt13/1.
rt13(0).
:- regtype rt39/1.
rt39(0).
:- regtype rt41/1.
rt41(0).
rt41(s(A)) :-
rt41(A).
:- regtype rt40/1.
rt40(0).
rt40(s(A)) :-
rt41(A).
:- regtype rt10/1.
rt10(0).
:- regtype rt12/1.
rt12(0).
:- regtype rt19/1.
rt19(0).
rt19(s(A)) :-
rt19(A).
:- regtype rt18/1.
rt18(0).
rt18(s(A)) :-
rt19(A).
:- regtype rt6/1.
rt6(0).
:- regtype rt8/1.
rt8(0).