MAYBE
Trs:
 {  if_low(true(), n, add(m, x)) -> add(m, low(n, x)),
   if_low(false(), n, add(m, x)) -> low(n, x),
                      le(0(), y) -> true(),
                   le(s(x), 0()) -> false(),
                  le(s(x), s(y)) -> le(x, y),
   if_high(true(), n, add(m, x)) -> high(n, x),
  if_high(false(), n, add(m, x)) -> add(m, high(n, x)),
                  high(n, nil()) -> nil(),
              high(n, add(m, x)) -> if_high(le(m, n), n, add(m, x)),
                 tail(add(n, x)) -> x,
                 head(add(n, x)) -> n,
                   low(n, nil()) -> nil(),
               low(n, add(m, x)) -> if_low(le(m, n), n, add(m, x)),
                  isempty(nil()) -> true(),
              isempty(add(n, x)) -> false(),
          if_qs(true(), x, n, y) -> nil(),
         if_qs(false(), x, n, y) -> app(quicksort(x), add(n, quicksort(y))),
                    quicksort(x) -> if_qs(isempty(x), low(head(x), tail(x)), head(x), high(head(x), tail(x))),
                   app(nil(), y) -> y,
               app(add(n, x), y) -> add(n, app(x, y))}
 Comment:
  We consider a duplicating trs.
  FAIL:
   Open