YES TRS: dx(X) -> one() dx(a()) -> zero() dx(plus(ALPHA,BETA)) -> plus(dx(ALPHA),dx(BETA)) dx(times(ALPHA,BETA)) -> plus(times(BETA,dx(ALPHA)),times(ALPHA,dx(BETA))) dx(minus(ALPHA,BETA)) -> minus(dx(ALPHA),dx(BETA)) dx(neg(ALPHA)) -> neg(dx(ALPHA)) dx(div(ALPHA,BETA)) -> minus(div(dx(ALPHA),BETA),times(ALPHA,div(dx(BETA),exp(BETA,two())))) dx(ln(ALPHA)) -> div(dx(ALPHA),ALPHA) dx(exp(ALPHA,BETA)) -> plus(times(BETA,times(exp(ALPHA,minus(BETA,one())),dx(ALPHA))),times(exp(ALPHA,BETA),times(ln(ALPHA),dx(BETA)))) linear polynomial interpretations on N: dx_A(x1) = 1 dx#_A(x1) = 4 one_A = 1 one#_A = 0 a_A = 1 a#_A = 6 zero_A = 0 zero#_A = 5 plus_A(x1,x2) = 1 plus#_A(x1,x2) = 3 times_A(x1,x2) = 1 times#_A(x1,x2) = 3 minus_A(x1,x2) = 1 minus#_A(x1,x2) = 1 neg_A(x1) = 1 neg#_A(x1) = 0 div_A(x1,x2) = 1 div#_A(x1,x2) = 2 exp_A(x1,x2) = x1 + 1 exp#_A(x1,x2) = 1 two_A = 1 two#_A = 1 ln_A(x1) = x1 + 1 ln#_A(x1) = 0 precedence: times > dx = a > zero = plus = minus = neg = exp > one = ln > div > two