:- seqex(sfib/2).

sfib(0,0).
sfib(1,1).
sfib(M,N) :- M > 1, M1 is M-1, M2 is M-2,(sfib(M1,N1) //  sfib(M2,N2)),
	     							 N is N1+N2.

fib(M,N) :- M > 15, M1 is M-1, M2 is M-2, (fib(M1,N1) //  fib(M2,N2)),
	     							 N is N1+N2.
fib(M,N) :- M =< 15, M1 is M-1, M2 is M-2, (sfib(M1,N1) //  sfib(M2,N2)),
	     							 N is N1+N2.

?- fib(6,M).

