YES TRS: ack_in(0(),n) -> ack_out(s(n)) ack_in(s(m),0()) -> u11(ack_in(m,s(0()))) u11(ack_out(n)) -> ack_out(n) ack_in(s(m),s(n)) -> u21(ack_in(s(m),n),m) u21(ack_out(n),m) -> u22(ack_in(m,n)) u22(ack_out(n)) -> ack_out(n) linear polynomial interpretations on N: ack_in_A(x1,x2) = x2 + 1 ack_in#_A(x1,x2) = x1 + 1 0_A = 1 0#_A = 0 ack_out_A(x1) = 1 ack_out#_A(x1) = 1 s_A(x1) = x1 + 2 s#_A(x1) = 1 u11_A(x1) = 1 u11#_A(x1) = 0 u21_A(x1,x2) = 1 u21#_A(x1,x2) = x2 + 2 u22_A(x1) = 1 u22#_A(x1) = 0 precedence: u11 = u21 > ack_in > ack_out = s > 0 = u22