YES TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) reverse(nil()) -> nil() reverse(add(n,x)) -> app(reverse(x),add(n,nil())) shuffle(nil()) -> nil() shuffle(add(n,x)) -> add(n,shuffle(reverse(x))) concat(leaf(),y) -> y concat(cons(u,v),y) -> cons(u,concat(v,y)) less_leaves(x,leaf()) -> false() less_leaves(leaf(),cons(w,z)) -> true() less_leaves(cons(u,v),cons(w,z)) -> less_leaves(concat(u,v),concat(w,z)) linear polynomial interpretations on N: minus_A(x1,x2) = x1 minus#_A(x1,x2) = 0 0_A = 1 0#_A = 6 s_A(x1) = x1 + 4 s#_A(x1) = 7 quot_A(x1,x2) = x1 + 1 quot#_A(x1,x2) = x1 + x2 app_A(x1,x2) = x1 + x2 app#_A(x1,x2) = 3 nil_A = 0 nil#_A = 0 add_A(x1,x2) = x1 + x2 + 3 add#_A(x1,x2) = 2 reverse_A(x1) = x1 reverse#_A(x1) = x1 + 1 shuffle_A(x1) = x1 + 1 shuffle#_A(x1) = x1 + 3 concat_A(x1,x2) = x1 + x2 + 1 concat#_A(x1,x2) = x1 + 2 leaf_A = 1 leaf#_A = 1 cons_A(x1,x2) = x1 + x2 + 2 cons#_A(x1,x2) = x1 + 3 less_leaves_A(x1,x2) = 0 less_leaves#_A(x1,x2) = 1 false_A = 0 false#_A = 0 true_A = 0 true#_A = 0 precedence: concat > cons = less_leaves > shuffle = false > s = add = leaf > 0 = reverse = true > quot = app = nil > minus