MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict 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))) } Obligation: innermost runtime complexity Answer: MAYBE We add following dependency tuples: Strict DPs: { qsort^#(nil()) -> c_1() , qsort^#(.(x, y)) -> c_2(qsort^#(lowers(x, y)), lowers^#(x, y), qsort^#(greaters(x, y)), greaters^#(x, y)) , lowers^#(x, nil()) -> c_3() , lowers^#(x, .(y, z)) -> c_4(lowers^#(x, z), lowers^#(x, z)) , greaters^#(x, nil()) -> c_5() , greaters^#(x, .(y, z)) -> c_6(greaters^#(x, z), greaters^#(x, z)) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { qsort^#(nil()) -> c_1() , qsort^#(.(x, y)) -> c_2(qsort^#(lowers(x, y)), lowers^#(x, y), qsort^#(greaters(x, y)), greaters^#(x, y)) , lowers^#(x, nil()) -> c_3() , lowers^#(x, .(y, z)) -> c_4(lowers^#(x, z), lowers^#(x, z)) , greaters^#(x, nil()) -> c_5() , greaters^#(x, .(y, z)) -> c_6(greaters^#(x, z), greaters^#(x, z)) } Weak 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))) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {1,3,5} by applications of Pre({1,3,5}) = {2,4,6}. Here rules are labeled as follows: DPs: { 1: qsort^#(nil()) -> c_1() , 2: qsort^#(.(x, y)) -> c_2(qsort^#(lowers(x, y)), lowers^#(x, y), qsort^#(greaters(x, y)), greaters^#(x, y)) , 3: lowers^#(x, nil()) -> c_3() , 4: lowers^#(x, .(y, z)) -> c_4(lowers^#(x, z), lowers^#(x, z)) , 5: greaters^#(x, nil()) -> c_5() , 6: greaters^#(x, .(y, z)) -> c_6(greaters^#(x, z), greaters^#(x, z)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { qsort^#(.(x, y)) -> c_2(qsort^#(lowers(x, y)), lowers^#(x, y), qsort^#(greaters(x, y)), greaters^#(x, y)) , lowers^#(x, .(y, z)) -> c_4(lowers^#(x, z), lowers^#(x, z)) , greaters^#(x, .(y, z)) -> c_6(greaters^#(x, z), greaters^#(x, z)) } Weak DPs: { qsort^#(nil()) -> c_1() , lowers^#(x, nil()) -> c_3() , greaters^#(x, nil()) -> c_5() } Weak 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))) } Obligation: innermost runtime complexity Answer: MAYBE The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { qsort^#(nil()) -> c_1() , lowers^#(x, nil()) -> c_3() , greaters^#(x, nil()) -> c_5() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { qsort^#(.(x, y)) -> c_2(qsort^#(lowers(x, y)), lowers^#(x, y), qsort^#(greaters(x, y)), greaters^#(x, y)) , lowers^#(x, .(y, z)) -> c_4(lowers^#(x, z), lowers^#(x, z)) , greaters^#(x, .(y, z)) -> c_6(greaters^#(x, z), greaters^#(x, z)) } Weak 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))) } Obligation: innermost runtime complexity Answer: MAYBE Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { qsort^#(.(x, y)) -> c_2(qsort^#(lowers(x, y)), lowers^#(x, y), qsort^#(greaters(x, y)), greaters^#(x, y)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { qsort^#(.(x, y)) -> c_1(lowers^#(x, y), greaters^#(x, y)) , lowers^#(x, .(y, z)) -> c_2(lowers^#(x, z), lowers^#(x, z)) , greaters^#(x, .(y, z)) -> c_3(greaters^#(x, z), greaters^#(x, z)) } Weak 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))) } Obligation: innermost runtime complexity Answer: MAYBE No rule is usable, rules are removed from the input problem. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { qsort^#(.(x, y)) -> c_1(lowers^#(x, y), greaters^#(x, y)) , lowers^#(x, .(y, z)) -> c_2(lowers^#(x, z), lowers^#(x, z)) , greaters^#(x, .(y, z)) -> c_3(greaters^#(x, z), greaters^#(x, z)) } Obligation: innermost runtime complexity Answer: MAYBE Consider the dependency graph 1: qsort^#(.(x, y)) -> c_1(lowers^#(x, y), greaters^#(x, y)) -->_2 greaters^#(x, .(y, z)) -> c_3(greaters^#(x, z), greaters^#(x, z)) :3 -->_1 lowers^#(x, .(y, z)) -> c_2(lowers^#(x, z), lowers^#(x, z)) :2 2: lowers^#(x, .(y, z)) -> c_2(lowers^#(x, z), lowers^#(x, z)) -->_2 lowers^#(x, .(y, z)) -> c_2(lowers^#(x, z), lowers^#(x, z)) :2 -->_1 lowers^#(x, .(y, z)) -> c_2(lowers^#(x, z), lowers^#(x, z)) :2 3: greaters^#(x, .(y, z)) -> c_3(greaters^#(x, z), greaters^#(x, z)) -->_2 greaters^#(x, .(y, z)) -> c_3(greaters^#(x, z), greaters^#(x, z)) :3 -->_1 greaters^#(x, .(y, z)) -> c_3(greaters^#(x, z), greaters^#(x, z)) :3 Following roots of the dependency graph are removed, as the considered set of starting terms is closed under reduction with respect to these rules (modulo compound contexts). { qsort^#(.(x, y)) -> c_1(lowers^#(x, y), greaters^#(x, y)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { lowers^#(x, .(y, z)) -> c_2(lowers^#(x, z), lowers^#(x, z)) , greaters^#(x, .(y, z)) -> c_3(greaters^#(x, z), greaters^#(x, z)) } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..