YES TRS: a__from(X) -> cons(mark(X),from(s(X))) a__length(nil()) -> 0() a__length(cons(X,Y)) -> s(a__length1(Y)) a__length1(X) -> a__length(X) mark(from(X)) -> a__from(mark(X)) mark(length(X)) -> a__length(X) mark(length1(X)) -> a__length1(X) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) mark(nil()) -> nil() mark(0()) -> 0() a__from(X) -> from(X) a__length(X) -> length(X) a__length1(X) -> length1(X) max/plus interpretations on N: a__from_A(x1) = max{6, 8 + x1} a__from#_A(x1) = max{6, 8 + x1} cons_A(x1,x2) = max{4, 3 + x1, x2} cons#_A(x1,x2) = max{4, 3 + x1, x2} mark_A(x1) = max{5, 5 + x1} mark#_A(x1) = max{5, 5 + x1} from_A(x1) = max{7, 8 + x1} from#_A(x1) = max{7, 8 + x1} s_A(x1) = max{0, x1} s#_A(x1) = max{0, x1} a__length_A(x1) = max{1, x1} a__length#_A(x1) = max{1, x1} nil_A = 0 nil#_A = 0 0_A = 0 0#_A = 0 a__length1_A(x1) = max{4, x1} a__length1#_A(x1) = max{4, x1} length_A(x1) = max{1, x1} length#_A(x1) = max{1, x1} length1_A(x1) = max{1, x1} length1#_A(x1) = max{1, x1} precedence: 0 > nil > mark > a__from > cons = from > a__length1 > a__length = length1 > s = length