YES TRS: a__nats() -> cons(0(),incr(nats())) a__pairs() -> cons(0(),incr(odds())) a__odds() -> a__incr(a__pairs()) a__incr(cons(X,XS)) -> cons(s(mark(X)),incr(XS)) a__head(cons(X,XS)) -> mark(X) a__tail(cons(X,XS)) -> mark(XS) mark(nats()) -> a__nats() mark(pairs()) -> a__pairs() mark(odds()) -> a__odds() mark(incr(X)) -> a__incr(mark(X)) mark(head(X)) -> a__head(mark(X)) mark(tail(X)) -> a__tail(mark(X)) mark(0()) -> 0() mark(s(X)) -> s(mark(X)) mark(nil()) -> nil() mark(cons(X1,X2)) -> cons(mark(X1),X2) a__nats() -> nats() a__pairs() -> pairs() a__odds() -> odds() a__incr(X) -> incr(X) a__head(X) -> head(X) a__tail(X) -> tail(X) max/plus interpretations on N: a__nats_A = 10 a__nats#_A = 10 cons_A(x1,x2) = max{9, 5 + x1, x2} cons#_A(x1,x2) = max{9, 5 + x1, x2} 0_A = 0 0#_A = 0 incr_A(x1) = max{1, x1} incr#_A(x1) = max{1, x1} nats_A = 10 nats#_A = 10 a__pairs_A = 10 a__pairs#_A = 10 odds_A = 10 odds#_A = 10 a__odds_A = 10 a__odds#_A = 10 a__incr_A(x1) = max{2, x1} a__incr#_A(x1) = max{2, x1} s_A(x1) = max{3, x1} s#_A(x1) = max{3, x1} mark_A(x1) = max{4, x1} mark#_A(x1) = max{4, x1} a__head_A(x1) = max{9, 5 + x1} a__head#_A(x1) = max{9, 5 + x1} a__tail_A(x1) = max{5, 1 + x1} a__tail#_A(x1) = max{5, 1 + x1} pairs_A = 10 pairs#_A = 10 head_A(x1) = max{9, 5 + x1} head#_A(x1) = max{9, 5 + x1} tail_A(x1) = max{5, 1 + x1} tail#_A(x1) = max{5, 1 + x1} nil_A = 0 nil#_A = 0 precedence: 0 = nil > mark = a__tail > a__nats = a__odds = a__head = tail > nats = a__pairs = a__incr = head > cons = odds = pairs > incr = s