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