YES TRS: fst(0(),Z) -> nil() fst(s(X),cons(Y,Z)) -> cons(Y,n__fst(activate(X),activate(Z))) from(X) -> cons(X,n__from(s(X))) add(0(),X) -> X add(s(X),Y) -> s(n__add(activate(X),Y)) len(nil()) -> 0() len(cons(X,Z)) -> s(n__len(activate(Z))) fst(X1,X2) -> n__fst(X1,X2) from(X) -> n__from(X) add(X1,X2) -> n__add(X1,X2) len(X) -> n__len(X) activate(n__fst(X1,X2)) -> fst(X1,X2) activate(n__from(X)) -> from(X) activate(n__add(X1,X2)) -> add(X1,X2) activate(n__len(X)) -> len(X) activate(X) -> X max/plus interpretations on N: fst_A(x1,x2) = max{47, 47 + x1, 31 + x2} fst#_A(x1,x2) = max{1, 3 + x1, 7 + x2} 0_A = 47 0#_A = 49 nil_A = 48 nil#_A = 48 s_A(x1) = max{35, 32 + x1} s#_A(x1) = max{32, 43} cons_A(x1,x2) = max{31, 62, 32 + x2} cons#_A(x1,x2) = max{0, 0, 39} n__fst_A(x1,x2) = max{0, 15 + x1, -1 + x2} n__fst#_A(x1,x2) = max{2, 0, 0} activate_A(x1) = max{46, 32 + x1} activate#_A(x1) = max{42, 34 + x1} from_A(x1) = max{79, 46} from#_A(x1) = max{44, 46} n__from_A(x1) = max{47, 13} n__from#_A(x1) = max{46, 45} add_A(x1,x2) = max{48, 47 + x1, 93 + x2} add#_A(x1,x2) = max{45, 9 + x1, 45} n__add_A(x1,x2) = max{61, 15 + x1, 61 + x2} n__add#_A(x1,x2) = max{45, 8, 45} len_A(x1) = max{46, x1} len#_A(x1) = max{41, 2 + x1} n__len_A(x1) = max{0, -32 + x1} n__len#_A(x1) = max{40, -1} precedence: fst > cons = n__fst > activate = len > 0 = from = add = n__len > nil = s = n__from = n__add