MAYBE Problem: 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))) Proof: DP Processor: DPs: qsort#(.(x,y)) -> greaters#(x,y) qsort#(.(x,y)) -> qsort#(greaters(x,y)) qsort#(.(x,y)) -> lowers#(x,y) qsort#(.(x,y)) -> qsort#(lowers(x,y)) lowers#(x,.(y,z)) -> lowers#(x,z) greaters#(x,.(y,z)) -> greaters#(x,z) TRS: 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))) TDG Processor: DPs: qsort#(.(x,y)) -> greaters#(x,y) qsort#(.(x,y)) -> qsort#(greaters(x,y)) qsort#(.(x,y)) -> lowers#(x,y) qsort#(.(x,y)) -> qsort#(lowers(x,y)) lowers#(x,.(y,z)) -> lowers#(x,z) greaters#(x,.(y,z)) -> greaters#(x,z) TRS: 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))) graph: lowers#(x,.(y,z)) -> lowers#(x,z) -> lowers#(x,.(y,z)) -> lowers#(x,z) greaters#(x,.(y,z)) -> greaters#(x,z) -> greaters#(x,.(y,z)) -> greaters#(x,z) qsort#(.(x,y)) -> lowers#(x,y) -> lowers#(x,.(y,z)) -> lowers#(x,z) qsort#(.(x,y)) -> greaters#(x,y) -> greaters#(x,.(y,z)) -> greaters#(x,z) qsort#(.(x,y)) -> qsort#(greaters(x,y)) -> qsort#(.(x,y)) -> qsort#(lowers(x,y)) qsort#(.(x,y)) -> qsort#(greaters(x,y)) -> qsort#(.(x,y)) -> lowers#(x,y) qsort#(.(x,y)) -> qsort#(greaters(x,y)) -> qsort#(.(x,y)) -> qsort#(greaters(x,y)) qsort#(.(x,y)) -> qsort#(greaters(x,y)) -> qsort#(.(x,y)) -> greaters#(x,y) qsort#(.(x,y)) -> qsort#(lowers(x,y)) -> qsort#(.(x,y)) -> qsort#(lowers(x,y)) qsort#(.(x,y)) -> qsort#(lowers(x,y)) -> qsort#(.(x,y)) -> lowers#(x,y) qsort#(.(x,y)) -> qsort#(lowers(x,y)) -> qsort#(.(x,y)) -> qsort#(greaters(x,y)) qsort#(.(x,y)) -> qsort#(lowers(x,y)) -> qsort#(.(x,y)) -> greaters#(x,y) EDG Processor: DPs: qsort#(.(x,y)) -> greaters#(x,y) qsort#(.(x,y)) -> qsort#(greaters(x,y)) qsort#(.(x,y)) -> lowers#(x,y) qsort#(.(x,y)) -> qsort#(lowers(x,y)) lowers#(x,.(y,z)) -> lowers#(x,z) greaters#(x,.(y,z)) -> greaters#(x,z) TRS: 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))) graph: lowers#(x,.(y,z)) -> lowers#(x,z) -> lowers#(x,.(y,z)) -> lowers#(x,z) greaters#(x,.(y,z)) -> greaters#(x,z) -> greaters#(x,.(y,z)) -> greaters#(x,z) qsort#(.(x,y)) -> lowers#(x,y) -> lowers#(x,.(y,z)) -> lowers#(x,z) qsort#(.(x,y)) -> greaters#(x,y) -> greaters#(x,.(y,z)) -> greaters#(x,z) SCC Processor: #sccs: 2 #rules: 2 #arcs: 4/36 DPs: greaters#(x,.(y,z)) -> greaters#(x,z) TRS: 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))) Open DPs: lowers#(x,.(y,z)) -> lowers#(x,z) TRS: 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))) Open