YES TRS: concat(leaf(),Y) -> Y concat(cons(U,V),Y) -> cons(U,concat(V,Y)) lessleaves(X,leaf()) -> false() lessleaves(leaf(),cons(W,Z)) -> true() lessleaves(cons(U,V),cons(W,Z)) -> lessleaves(concat(U,V),concat(W,Z)) linear polynomial interpretations on N: concat_A(x1,x2) = x1 + x2 + 1 concat#_A(x1,x2) = x1 + x2 + 1 leaf_A = 0 leaf#_A = 5 cons_A(x1,x2) = x1 + x2 + 2 cons#_A(x1,x2) = 0 lessleaves_A(x1,x2) = 0 lessleaves#_A(x1,x2) = x1 + x2 + 1 false_A = 0 false#_A = 0 true_A = 0 true#_A = 4 precedence: leaf > concat = true > cons = lessleaves > false