YES TRS: fib(N) -> sel(N,fib1(s(0()),s(0()))) fib1(X,Y) -> cons(X,n__fib1(Y,n__add(X,Y))) add(0(),X) -> X add(s(X),Y) -> s(add(X,Y)) sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,activate(XS)) fib1(X1,X2) -> n__fib1(X1,X2) add(X1,X2) -> n__add(X1,X2) activate(n__fib1(X1,X2)) -> fib1(activate(X1),activate(X2)) activate(n__add(X1,X2)) -> add(activate(X1),activate(X2)) activate(X) -> X max/plus interpretations on N: fib_A(x1) = max{3, 2 + x1} fib#_A(x1) = max{3, 2 + x1} sel_A(x1,x2) = max{3, 1 + x1, x2} sel#_A(x1,x2) = max{3, 1 + x1, x2} fib1_A(x1,x2) = max{3, x1, x2} fib1#_A(x1,x2) = max{3, x1, x2} s_A(x1) = max{3, x1} s#_A(x1) = max{3, x1} 0_A = 1 0#_A = 1 cons_A(x1,x2) = max{3, x1, x2} cons#_A(x1,x2) = max{3, x1, x2} n__fib1_A(x1,x2) = max{3, x1, x2} n__fib1#_A(x1,x2) = max{3, x1, x2} n__add_A(x1,x2) = max{3, x1, x2} n__add#_A(x1,x2) = max{3, x1, x2} add_A(x1,x2) = max{4, x1, x2} add#_A(x1,x2) = max{4, x1, x2} activate_A(x1) = max{4, x1} activate#_A(x1) = max{4, x1} precedence: fib > sel > activate > fib1 = 0 = add > s = cons = n__fib1 = n__add