MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict 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)))) } Obligation: innermost runtime complexity Answer: MAYBE We add following dependency tuples: Strict DPs: { minus^#(x, 0()) -> c_1() , minus^#(s(x), s(y)) -> c_2(minus^#(x, y)) , quot^#(0(), s(y)) -> c_3() , quot^#(s(x), s(y)) -> c_4(quot^#(minus(x, y), s(y)), minus^#(x, y)) , le^#(0(), y) -> c_5() , le^#(s(x), 0()) -> c_6() , le^#(s(x), s(y)) -> c_7(le^#(x, y)) , app^#(nil(), y) -> c_8() , app^#(add(n, x), y) -> c_9(app^#(x, y)) , low^#(n, nil()) -> c_10() , low^#(n, add(m, x)) -> c_11(if_low^#(le(m, n), n, add(m, x)), le^#(m, n)) , if_low^#(true(), n, add(m, x)) -> c_12(low^#(n, x)) , if_low^#(false(), n, add(m, x)) -> c_13(low^#(n, x)) , high^#(n, nil()) -> c_14() , high^#(n, add(m, x)) -> c_15(if_high^#(le(m, n), n, add(m, x)), le^#(m, n)) , if_high^#(true(), n, add(m, x)) -> c_16(high^#(n, x)) , if_high^#(false(), n, add(m, x)) -> c_17(high^#(n, x)) , quicksort^#(nil()) -> c_18() , quicksort^#(add(n, x)) -> c_19(app^#(quicksort(low(n, x)), add(n, quicksort(high(n, x)))), quicksort^#(low(n, x)), low^#(n, x), quicksort^#(high(n, x)), high^#(n, x)) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { minus^#(x, 0()) -> c_1() , minus^#(s(x), s(y)) -> c_2(minus^#(x, y)) , quot^#(0(), s(y)) -> c_3() , quot^#(s(x), s(y)) -> c_4(quot^#(minus(x, y), s(y)), minus^#(x, y)) , le^#(0(), y) -> c_5() , le^#(s(x), 0()) -> c_6() , le^#(s(x), s(y)) -> c_7(le^#(x, y)) , app^#(nil(), y) -> c_8() , app^#(add(n, x), y) -> c_9(app^#(x, y)) , low^#(n, nil()) -> c_10() , low^#(n, add(m, x)) -> c_11(if_low^#(le(m, n), n, add(m, x)), le^#(m, n)) , if_low^#(true(), n, add(m, x)) -> c_12(low^#(n, x)) , if_low^#(false(), n, add(m, x)) -> c_13(low^#(n, x)) , high^#(n, nil()) -> c_14() , high^#(n, add(m, x)) -> c_15(if_high^#(le(m, n), n, add(m, x)), le^#(m, n)) , if_high^#(true(), n, add(m, x)) -> c_16(high^#(n, x)) , if_high^#(false(), n, add(m, x)) -> c_17(high^#(n, x)) , quicksort^#(nil()) -> c_18() , quicksort^#(add(n, x)) -> c_19(app^#(quicksort(low(n, x)), add(n, quicksort(high(n, x)))), quicksort^#(low(n, x)), low^#(n, x), quicksort^#(high(n, x)), high^#(n, x)) } Weak 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)))) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {1,3,5,6,8,10,14,18} by applications of Pre({1,3,5,6,8,10,14,18}) = {2,4,7,9,11,12,13,15,16,17,19}. Here rules are labeled as follows: DPs: { 1: minus^#(x, 0()) -> c_1() , 2: minus^#(s(x), s(y)) -> c_2(minus^#(x, y)) , 3: quot^#(0(), s(y)) -> c_3() , 4: quot^#(s(x), s(y)) -> c_4(quot^#(minus(x, y), s(y)), minus^#(x, y)) , 5: le^#(0(), y) -> c_5() , 6: le^#(s(x), 0()) -> c_6() , 7: le^#(s(x), s(y)) -> c_7(le^#(x, y)) , 8: app^#(nil(), y) -> c_8() , 9: app^#(add(n, x), y) -> c_9(app^#(x, y)) , 10: low^#(n, nil()) -> c_10() , 11: low^#(n, add(m, x)) -> c_11(if_low^#(le(m, n), n, add(m, x)), le^#(m, n)) , 12: if_low^#(true(), n, add(m, x)) -> c_12(low^#(n, x)) , 13: if_low^#(false(), n, add(m, x)) -> c_13(low^#(n, x)) , 14: high^#(n, nil()) -> c_14() , 15: high^#(n, add(m, x)) -> c_15(if_high^#(le(m, n), n, add(m, x)), le^#(m, n)) , 16: if_high^#(true(), n, add(m, x)) -> c_16(high^#(n, x)) , 17: if_high^#(false(), n, add(m, x)) -> c_17(high^#(n, x)) , 18: quicksort^#(nil()) -> c_18() , 19: quicksort^#(add(n, x)) -> c_19(app^#(quicksort(low(n, x)), add(n, quicksort(high(n, x)))), quicksort^#(low(n, x)), low^#(n, x), quicksort^#(high(n, x)), high^#(n, x)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { minus^#(s(x), s(y)) -> c_2(minus^#(x, y)) , quot^#(s(x), s(y)) -> c_4(quot^#(minus(x, y), s(y)), minus^#(x, y)) , le^#(s(x), s(y)) -> c_7(le^#(x, y)) , app^#(add(n, x), y) -> c_9(app^#(x, y)) , low^#(n, add(m, x)) -> c_11(if_low^#(le(m, n), n, add(m, x)), le^#(m, n)) , if_low^#(true(), n, add(m, x)) -> c_12(low^#(n, x)) , if_low^#(false(), n, add(m, x)) -> c_13(low^#(n, x)) , high^#(n, add(m, x)) -> c_15(if_high^#(le(m, n), n, add(m, x)), le^#(m, n)) , if_high^#(true(), n, add(m, x)) -> c_16(high^#(n, x)) , if_high^#(false(), n, add(m, x)) -> c_17(high^#(n, x)) , quicksort^#(add(n, x)) -> c_19(app^#(quicksort(low(n, x)), add(n, quicksort(high(n, x)))), quicksort^#(low(n, x)), low^#(n, x), quicksort^#(high(n, x)), high^#(n, x)) } Weak DPs: { minus^#(x, 0()) -> c_1() , quot^#(0(), s(y)) -> c_3() , le^#(0(), y) -> c_5() , le^#(s(x), 0()) -> c_6() , app^#(nil(), y) -> c_8() , low^#(n, nil()) -> c_10() , high^#(n, nil()) -> c_14() , quicksort^#(nil()) -> c_18() } Weak 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)))) } 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. { minus^#(x, 0()) -> c_1() , quot^#(0(), s(y)) -> c_3() , le^#(0(), y) -> c_5() , le^#(s(x), 0()) -> c_6() , app^#(nil(), y) -> c_8() , low^#(n, nil()) -> c_10() , high^#(n, nil()) -> c_14() , quicksort^#(nil()) -> c_18() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { minus^#(s(x), s(y)) -> c_2(minus^#(x, y)) , quot^#(s(x), s(y)) -> c_4(quot^#(minus(x, y), s(y)), minus^#(x, y)) , le^#(s(x), s(y)) -> c_7(le^#(x, y)) , app^#(add(n, x), y) -> c_9(app^#(x, y)) , low^#(n, add(m, x)) -> c_11(if_low^#(le(m, n), n, add(m, x)), le^#(m, n)) , if_low^#(true(), n, add(m, x)) -> c_12(low^#(n, x)) , if_low^#(false(), n, add(m, x)) -> c_13(low^#(n, x)) , high^#(n, add(m, x)) -> c_15(if_high^#(le(m, n), n, add(m, x)), le^#(m, n)) , if_high^#(true(), n, add(m, x)) -> c_16(high^#(n, x)) , if_high^#(false(), n, add(m, x)) -> c_17(high^#(n, x)) , quicksort^#(add(n, x)) -> c_19(app^#(quicksort(low(n, x)), add(n, quicksort(high(n, x)))), quicksort^#(low(n, x)), low^#(n, x), quicksort^#(high(n, x)), high^#(n, x)) } Weak 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)))) } Obligation: innermost runtime complexity Answer: MAYBE We replace rewrite rules by usable rules: Weak Usable Rules: { minus(x, 0()) -> x , minus(s(x), s(y)) -> minus(x, 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)))) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { minus^#(s(x), s(y)) -> c_2(minus^#(x, y)) , quot^#(s(x), s(y)) -> c_4(quot^#(minus(x, y), s(y)), minus^#(x, y)) , le^#(s(x), s(y)) -> c_7(le^#(x, y)) , app^#(add(n, x), y) -> c_9(app^#(x, y)) , low^#(n, add(m, x)) -> c_11(if_low^#(le(m, n), n, add(m, x)), le^#(m, n)) , if_low^#(true(), n, add(m, x)) -> c_12(low^#(n, x)) , if_low^#(false(), n, add(m, x)) -> c_13(low^#(n, x)) , high^#(n, add(m, x)) -> c_15(if_high^#(le(m, n), n, add(m, x)), le^#(m, n)) , if_high^#(true(), n, add(m, x)) -> c_16(high^#(n, x)) , if_high^#(false(), n, add(m, x)) -> c_17(high^#(n, x)) , quicksort^#(add(n, x)) -> c_19(app^#(quicksort(low(n, x)), add(n, quicksort(high(n, x)))), quicksort^#(low(n, x)), low^#(n, x), quicksort^#(high(n, x)), high^#(n, x)) } Weak Trs: { minus(x, 0()) -> x , minus(s(x), s(y)) -> minus(x, 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)))) } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..