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).