(VAR X Y l m n x y ) (RULES max(0, n) -> n max(n, 0) -> n max(s(n), s(m)) -> s(max(n, m)) min(0, n) -> 0 min(n, 0) -> 0 min(s(n), s(m)) -> s(min(n, m)) insert(n, nil, X, Y) -> cons(n, nil) insert(n, cons(m, l), X, Y) -> cons(, insert(, l, X, Y)) sort(nil, X, Y) -> nil sort(cons(n, l), X, Y) -> insert(n, sort(l, X, Y), X, Y) ascending_sort(l) -> sort(l, , ) descending_sort(l) -> sort(l, , ) )