YES TRS: a__first(0(),X) -> nil() a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z)) a__from(X) -> cons(mark(X),from(s(X))) mark(first(X1,X2)) -> a__first(mark(X1),mark(X2)) mark(from(X)) -> a__from(mark(X)) mark(0()) -> 0() mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(cons(X1,X2)) -> cons(mark(X1),X2) a__first(X1,X2) -> first(X1,X2) a__from(X) -> from(X) max/plus interpretations on N: a__first_A(x1,x2) = max{15, 9 + x1, 5 + x2} a__first#_A(x1,x2) = max{15, 9 + x1, 5 + x2} 0_A = 7 0#_A = 7 nil_A = 6 nil#_A = 6 s_A(x1) = max{2, x1} s#_A(x1) = max{2, x1} cons_A(x1,x2) = max{24, 9 + x1, x2} cons#_A(x1,x2) = max{24, 9 + x1, x2} mark_A(x1) = max{8, 5 + x1} mark#_A(x1) = max{8, 5 + x1} first_A(x1,x2) = max{12, 9 + x1, 5 + x2} first#_A(x1,x2) = max{12, 9 + x1, 5 + x2} a__from_A(x1) = max{24, 18 + x1} a__from#_A(x1) = max{24, 18 + x1} from_A(x1) = max{24, 18 + x1} from#_A(x1) = max{24, 18 + x1} precedence: 0 > nil > mark = a__from > a__first = s = from > cons = first