MAYBE 0.08/0.19 MAYBE 0.08/0.19 0.08/0.19 Problem: 0.08/0.19 le(0(),y) -> true() 0.08/0.19 le(s(x),0()) -> false() 0.08/0.19 le(s(x),s(y)) -> le(x,y) 0.08/0.19 app(nil(),y) -> y 0.08/0.19 app(add(n,x),y) -> add(n,app(x,y)) 0.08/0.19 low(n,nil()) -> nil() 0.08/0.19 low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) 0.08/0.19 if_low(true(),n,add(m,x)) -> add(m,low(n,x)) 0.08/0.19 if_low(false(),n,add(m,x)) -> low(n,x) 0.08/0.19 high(n,nil()) -> nil() 0.08/0.19 high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) 0.08/0.19 if_high(true(),n,add(m,x)) -> high(n,x) 0.08/0.19 if_high(false(),n,add(m,x)) -> add(m,high(n,x)) 0.08/0.19 head(add(n,x)) -> n 0.08/0.19 tail(add(n,x)) -> x 0.08/0.19 isempty(nil()) -> true() 0.08/0.19 isempty(add(n,x)) -> false() 0.08/0.19 quicksort(x) -> if_qs(isempty(x),low(head(x),tail(x)),head(x),high(head(x),tail(x))) 0.08/0.19 if_qs(true(),x,n,y) -> nil() 0.08/0.19 if_qs(false(),x,n,y) -> app(quicksort(x),add(n,quicksort(y))) 0.08/0.19 0.08/0.19 Proof: 0.08/0.19 Open 0.08/0.19 EOF