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{30, 8 + x1, 12 + x2} a__first#_A(x1,x2) = max{14, -5 + x1, -24 + x2} 0_A = 21 0#_A = 0 nil_A = 30 nil#_A = 15 s_A(x1) = max{4, 21 + x1} s#_A(x1) = max{6, 9 + x1} cons_A(x1,x2) = max{33, 31 + x1, -2} cons#_A(x1,x2) = max{15, 16, 16} mark_A(x1) = max{3, 6 + x1} mark#_A(x1) = max{8, 1 + x1} first_A(x1,x2) = max{24, 8 + x1, 12 + x2} first#_A(x1,x2) = max{0, -25, -27} a__from_A(x1) = max{33, 37 + x1} a__from#_A(x1) = max{7, 23 + x1} from_A(x1) = max{26, 37 + x1} from#_A(x1) = max{23, 2 + x1} precedence: a__first > nil > mark > 0 = first = a__from > s = cons = from