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)) max/plus interpretations on N: concat_A(x1,x2) = max{0, 2 + x1, 1 + x2} concat#_A(x1,x2) = max{9, 1 + x1, 3} leaf_A = 1 leaf#_A = 8 cons_A(x1,x2) = max{9, 11 + x1, x2} cons#_A(x1,x2) = max{0, 2 + x1, 11} lessleaves_A(x1,x2) = max{0, 2, 1} lessleaves#_A(x1,x2) = max{4, 8, 6} false_A = 2 false#_A = 5 true_A = 2 true#_A = 7 precedence: leaf = cons = lessleaves > concat = false = true