(VAR p x xs y ys z ) (RULES if(true, xs, ys) -> xs if(false, xs, ys) -> ys app(nil, xs) -> xs app(cons(x, xs), ys) -> cons(x, app(xs, ys)) le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) gr(0, y) -> false gr(s(x), 0) -> true gr(s(x), s(y)) -> gr(x, y) filter(p, nil) -> nil filter(p, cons(x, xs)) -> if(, cons(x, filter(p, xs)), filter(p, xs)) qsort(nil) -> nil qsort(cons(x, xs)) -> app(qsort(filter(, xs)), app(cons(x, nil), qsort(filter(, xs)))) )