(VAR x y z) (RULES qsort(nil) -> nil qsort(.(x,y)) -> ++(qsort(lowers(x,y)),.(x,qsort(greaters(x,y)))) lowers(x,nil) -> nil lowers(x,.(y,z)) -> if(<=(y,x),.(y,lowers(x,z)),lowers(x,z)) greaters(x,nil) -> nil greaters(x,.(y,z)) -> if(<=(y,x),greaters(x,z),.(y,greaters(x,z))) ) (COMMENT Example 4.59 (Quick-Sort) in \cite{SK90})