YES Problem: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) Proof: DP Processor: DPs: minus#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) le#(s(x),s(y)) -> le#(x,y) app#(add(n,x),y) -> app#(x,y) low#(n,add(m,x)) -> le#(m,n) low#(n,add(m,x)) -> if_low#(le(m,n),n,add(m,x)) if_low#(true(),n,add(m,x)) -> low#(n,x) if_low#(false(),n,add(m,x)) -> low#(n,x) high#(n,add(m,x)) -> le#(m,n) high#(n,add(m,x)) -> if_high#(le(m,n),n,add(m,x)) if_high#(true(),n,add(m,x)) -> high#(n,x) if_high#(false(),n,add(m,x)) -> high#(n,x) quicksort#(add(n,x)) -> high#(n,x) quicksort#(add(n,x)) -> quicksort#(high(n,x)) quicksort#(add(n,x)) -> low#(n,x) quicksort#(add(n,x)) -> quicksort#(low(n,x)) quicksort#(add(n,x)) -> app#(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) TDG Processor: DPs: minus#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) le#(s(x),s(y)) -> le#(x,y) app#(add(n,x),y) -> app#(x,y) low#(n,add(m,x)) -> le#(m,n) low#(n,add(m,x)) -> if_low#(le(m,n),n,add(m,x)) if_low#(true(),n,add(m,x)) -> low#(n,x) if_low#(false(),n,add(m,x)) -> low#(n,x) high#(n,add(m,x)) -> le#(m,n) high#(n,add(m,x)) -> if_high#(le(m,n),n,add(m,x)) if_high#(true(),n,add(m,x)) -> high#(n,x) if_high#(false(),n,add(m,x)) -> high#(n,x) quicksort#(add(n,x)) -> high#(n,x) quicksort#(add(n,x)) -> quicksort#(high(n,x)) quicksort#(add(n,x)) -> low#(n,x) quicksort#(add(n,x)) -> quicksort#(low(n,x)) quicksort#(add(n,x)) -> app#(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) graph: quicksort#(add(n,x)) -> quicksort#(high(n,x)) -> quicksort#(add(n,x)) -> app#(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort#(add(n,x)) -> quicksort#(high(n,x)) -> quicksort#(add(n,x)) -> quicksort#(low(n,x)) quicksort#(add(n,x)) -> quicksort#(high(n,x)) -> quicksort#(add(n,x)) -> low#(n,x) quicksort#(add(n,x)) -> quicksort#(high(n,x)) -> quicksort#(add(n,x)) -> quicksort#(high(n,x)) quicksort#(add(n,x)) -> quicksort#(high(n,x)) -> quicksort#(add(n,x)) -> high#(n,x) quicksort#(add(n,x)) -> quicksort#(low(n,x)) -> quicksort#(add(n,x)) -> app#(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) quicksort#(add(n,x)) -> quicksort#(low(n,x)) -> quicksort#(add(n,x)) -> quicksort#(low(n,x)) quicksort#(add(n,x)) -> quicksort#(low(n,x)) -> quicksort#(add(n,x)) -> low#(n,x) quicksort#(add(n,x)) -> quicksort#(low(n,x)) -> quicksort#(add(n,x)) -> quicksort#(high(n,x)) quicksort#(add(n,x)) -> quicksort#(low(n,x)) -> quicksort#(add(n,x)) -> high#(n,x) quicksort#(add(n,x)) -> high#(n,x) -> high#(n,add(m,x)) -> if_high#(le(m,n),n,add(m,x)) quicksort#(add(n,x)) -> high#(n,x) -> high#(n,add(m,x)) -> le#(m,n) quicksort#(add(n,x)) -> low#(n,x) -> low#(n,add(m,x)) -> if_low#(le(m,n),n,add(m,x)) quicksort#(add(n,x)) -> low#(n,x) -> low#(n,add(m,x)) -> le#(m,n) quicksort#(add(n,x)) -> app#(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) -> app#(add(n,x),y) -> app#(x,y) if_high#(false(),n,add(m,x)) -> high#(n,x) -> high#(n,add(m,x)) -> if_high#(le(m,n),n,add(m,x)) if_high#(false(),n,add(m,x)) -> high#(n,x) -> high#(n,add(m,x)) -> le#(m,n) if_high#(true(),n,add(m,x)) -> high#(n,x) -> high#(n,add(m,x)) -> if_high#(le(m,n),n,add(m,x)) if_high#(true(),n,add(m,x)) -> high#(n,x) -> high#(n,add(m,x)) -> le#(m,n) high#(n,add(m,x)) -> if_high#(le(m,n),n,add(m,x)) -> if_high#(false(),n,add(m,x)) -> high#(n,x) high#(n,add(m,x)) -> if_high#(le(m,n),n,add(m,x)) -> if_high#(true(),n,add(m,x)) -> high#(n,x) high#(n,add(m,x)) -> le#(m,n) -> le#(s(x),s(y)) -> le#(x,y) if_low#(false(),n,add(m,x)) -> low#(n,x) -> low#(n,add(m,x)) -> if_low#(le(m,n),n,add(m,x)) if_low#(false(),n,add(m,x)) -> low#(n,x) -> low#(n,add(m,x)) -> le#(m,n) if_low#(true(),n,add(m,x)) -> low#(n,x) -> low#(n,add(m,x)) -> if_low#(le(m,n),n,add(m,x)) if_low#(true(),n,add(m,x)) -> low#(n,x) -> low#(n,add(m,x)) -> le#(m,n) low#(n,add(m,x)) -> if_low#(le(m,n),n,add(m,x)) -> if_low#(false(),n,add(m,x)) -> low#(n,x) low#(n,add(m,x)) -> if_low#(le(m,n),n,add(m,x)) -> if_low#(true(),n,add(m,x)) -> low#(n,x) low#(n,add(m,x)) -> le#(m,n) -> le#(s(x),s(y)) -> le#(x,y) app#(add(n,x),y) -> app#(x,y) -> app#(add(n,x),y) -> app#(x,y) le#(s(x),s(y)) -> le#(x,y) -> le#(s(x),s(y)) -> le#(x,y) quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) -> quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) -> quot#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y) minus#(s(x),s(y)) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y) SCC Processor: #sccs: 7 #rules: 12 #arcs: 35/324 DPs: quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) KBO Processor: argument filtering: pi(0) = [] pi(minus) = 0 pi(s) = [0] pi(quot) = 0 pi(le) = 0 pi(true) = [] pi(false) = [] pi(nil) = [] pi(app) = 1 pi(add) = 1 pi(low) = 1 pi(if_low) = 2 pi(high) = 1 pi(if_high) = 2 pi(quicksort) = 0 pi(quot#) = 0 weight function: w0 = 1 w(quot#) = w(quicksort) = w(if_high) = w(high) = w(add) = w(nil) = w( false) = w(true) = w(le) = w(quot) = w(s) = w(0) = 1 w(if_low) = w(low) = w(app) = w(minus) = 0 precedence: quot# ~ add ~ app ~ nil ~ false ~ s ~ minus ~ 0 > quicksort ~ if_high ~ high ~ if_low ~ low ~ true ~ le ~ quot problem: DPs: TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) Qed DPs: minus#(s(x),s(y)) -> minus#(x,y) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) Subterm Criterion Processor: simple projection: pi(minus#) = 1 problem: DPs: TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) Qed DPs: quicksort#(add(n,x)) -> quicksort#(high(n,x)) quicksort#(add(n,x)) -> quicksort#(low(n,x)) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) LPO Processor: argument filtering: pi(0) = [] pi(minus) = 0 pi(s) = [0] pi(quot) = 0 pi(le) = 0 pi(true) = [] pi(false) = [] pi(nil) = [] pi(app) = [0,1] pi(add) = [1] pi(low) = 1 pi(if_low) = 2 pi(high) = 1 pi(if_high) = 2 pi(quicksort) = [0] pi(quicksort#) = 0 precedence: quicksort > app ~ s ~ 0 > quicksort# ~ if_high ~ high ~ if_low ~ low ~ add ~ nil ~ false ~ true ~ le ~ quot ~ minus problem: DPs: TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) Qed DPs: app#(add(n,x),y) -> app#(x,y) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) Subterm Criterion Processor: simple projection: pi(app#) = 0 problem: DPs: TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) Qed DPs: low#(n,add(m,x)) -> if_low#(le(m,n),n,add(m,x)) if_low#(true(),n,add(m,x)) -> low#(n,x) if_low#(false(),n,add(m,x)) -> low#(n,x) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) Subterm Criterion Processor: simple projection: pi(low#) = 1 pi(if_low#) = 2 problem: DPs: low#(n,add(m,x)) -> if_low#(le(m,n),n,add(m,x)) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) SCC Processor: #sccs: 0 #rules: 0 #arcs: 4/1 DPs: high#(n,add(m,x)) -> if_high#(le(m,n),n,add(m,x)) if_high#(true(),n,add(m,x)) -> high#(n,x) if_high#(false(),n,add(m,x)) -> high#(n,x) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) Subterm Criterion Processor: simple projection: pi(high#) = 1 pi(if_high#) = 2 problem: DPs: high#(n,add(m,x)) -> if_high#(le(m,n),n,add(m,x)) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) SCC Processor: #sccs: 0 #rules: 0 #arcs: 4/1 DPs: le#(s(x),s(y)) -> le#(x,y) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) Subterm Criterion Processor: simple projection: pi(le#) = 1 problem: DPs: TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) app(nil(),y) -> y app(add(n,x),y) -> add(n,app(x,y)) low(n,nil()) -> nil() low(n,add(m,x)) -> if_low(le(m,n),n,add(m,x)) if_low(true(),n,add(m,x)) -> add(m,low(n,x)) if_low(false(),n,add(m,x)) -> low(n,x) high(n,nil()) -> nil() high(n,add(m,x)) -> if_high(le(m,n),n,add(m,x)) if_high(true(),n,add(m,x)) -> high(n,x) if_high(false(),n,add(m,x)) -> add(m,high(n,x)) quicksort(nil()) -> nil() quicksort(add(n,x)) -> app(quicksort(low(n,x)),add(n,quicksort(high(n,x)))) Qed