YES(?,O(n^2))
TRS:
 {
                    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))
 }
 DUP: We consider a non-duplicating system.
  Trs:
   {
                      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))
   }
  Matrix Interpretation:
   Interpretation class: triangular
            [0]
   [true] = [1]
   
                 [X3]  [X1]    [1 3][X3]   [1 3][X1]   [0]
   [less_leaves]([X2], [X0]) = [0 0][X2] + [0 0][X0] + [1]
   
             [0]
   [false] = [0]
   
          [X3]  [X1]    [1 1][X3]   [1 0][X1]   [1]
   [cons]([X2], [X0]) = [0 1][X2] + [0 1][X0] + [3]
   
            [1]
   [leaf] = [0]
   
            [X3]  [X1]    [1 1][X3]   [1 0][X1]   [0]
   [concat]([X2], [X0]) = [0 1][X2] + [0 1][X0] + [0]
   
   
   Qed