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