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