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{4, 9 + x1} a__from#_A(x1) = max{14, 6 + x1} cons_A(x1,x2) = max{8, 4 + x1, 2} cons#_A(x1,x2) = max{5, 7, 14} mark_A(x1) = max{2, 3 + x1} mark#_A(x1) = max{4, 6 + x1} from_A(x1) = max{0, 9 + x1} from#_A(x1) = max{10, 3} s_A(x1) = max{7, x1} s#_A(x1) = max{2, 3} a__length_A(x1) = max{7, 6} a__length#_A(x1) = max{1, 1} nil_A = 3 nil#_A = 6 0_A = 7 0#_A = 5 a__length1_A(x1) = max{5, 7} a__length1#_A(x1) = max{3, 3} length_A(x1) = max{2, 7} length#_A(x1) = max{0, 0} length1_A(x1) = max{1, 7} length1#_A(x1) = max{3, 3} precedence: a__from > from > mark > cons = nil > s = 0 > a__length = a__length1 > length = length1