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 = 2 leaf#_A = 2 cons_A(x1,x2) = x1 + x2 + 2 cons#_A(x1,x2) = x1 + x2 + 2 lessleaves_A(x1,x2) = x1 + x2 lessleaves#_A(x1,x2) = x1 + x2 false_A = 1 false#_A = 1 true_A = 1 true#_A = 1 precedence: leaf > false > lessleaves > concat > cons > true