MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { numbers() -> d(0()) , d(x) -> if(le(x, nr()), x) , if(true(), x) -> cons(x, d(s(x))) , if(false(), x) -> nil() , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , nr() -> ack(s(s(s(s(s(s(0())))))), 0()) , ack(0(), x) -> s(x) , ack(s(x), 0()) -> ack(x, s(0())) , ack(s(x), s(y)) -> ack(x, ack(s(x), y)) } Obligation: innermost runtime complexity Answer: MAYBE We add following dependency tuples: Strict DPs: { numbers^#() -> c_1(d^#(0())) , d^#(x) -> c_2(if^#(le(x, nr()), x), le^#(x, nr()), nr^#()) , if^#(true(), x) -> c_3(d^#(s(x))) , if^#(false(), x) -> c_4() , le^#(0(), y) -> c_5() , le^#(s(x), 0()) -> c_6() , le^#(s(x), s(y)) -> c_7(le^#(x, y)) , nr^#() -> c_8(ack^#(s(s(s(s(s(s(0())))))), 0())) , ack^#(0(), x) -> c_9() , ack^#(s(x), 0()) -> c_10(ack^#(x, s(0()))) , ack^#(s(x), s(y)) -> c_11(ack^#(x, ack(s(x), y)), ack^#(s(x), y)) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { numbers^#() -> c_1(d^#(0())) , d^#(x) -> c_2(if^#(le(x, nr()), x), le^#(x, nr()), nr^#()) , if^#(true(), x) -> c_3(d^#(s(x))) , if^#(false(), x) -> c_4() , le^#(0(), y) -> c_5() , le^#(s(x), 0()) -> c_6() , le^#(s(x), s(y)) -> c_7(le^#(x, y)) , nr^#() -> c_8(ack^#(s(s(s(s(s(s(0())))))), 0())) , ack^#(0(), x) -> c_9() , ack^#(s(x), 0()) -> c_10(ack^#(x, s(0()))) , ack^#(s(x), s(y)) -> c_11(ack^#(x, ack(s(x), y)), ack^#(s(x), y)) } Weak Trs: { numbers() -> d(0()) , d(x) -> if(le(x, nr()), x) , if(true(), x) -> cons(x, d(s(x))) , if(false(), x) -> nil() , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , nr() -> ack(s(s(s(s(s(s(0())))))), 0()) , ack(0(), x) -> s(x) , ack(s(x), 0()) -> ack(x, s(0())) , ack(s(x), s(y)) -> ack(x, ack(s(x), y)) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {4,5,6,9} by applications of Pre({4,5,6,9}) = {2,7,10,11}. Here rules are labeled as follows: DPs: { 1: numbers^#() -> c_1(d^#(0())) , 2: d^#(x) -> c_2(if^#(le(x, nr()), x), le^#(x, nr()), nr^#()) , 3: if^#(true(), x) -> c_3(d^#(s(x))) , 4: if^#(false(), x) -> c_4() , 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: nr^#() -> c_8(ack^#(s(s(s(s(s(s(0())))))), 0())) , 9: ack^#(0(), x) -> c_9() , 10: ack^#(s(x), 0()) -> c_10(ack^#(x, s(0()))) , 11: ack^#(s(x), s(y)) -> c_11(ack^#(x, ack(s(x), y)), ack^#(s(x), y)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { numbers^#() -> c_1(d^#(0())) , d^#(x) -> c_2(if^#(le(x, nr()), x), le^#(x, nr()), nr^#()) , if^#(true(), x) -> c_3(d^#(s(x))) , le^#(s(x), s(y)) -> c_7(le^#(x, y)) , nr^#() -> c_8(ack^#(s(s(s(s(s(s(0())))))), 0())) , ack^#(s(x), 0()) -> c_10(ack^#(x, s(0()))) , ack^#(s(x), s(y)) -> c_11(ack^#(x, ack(s(x), y)), ack^#(s(x), y)) } Weak DPs: { if^#(false(), x) -> c_4() , le^#(0(), y) -> c_5() , le^#(s(x), 0()) -> c_6() , ack^#(0(), x) -> c_9() } Weak Trs: { numbers() -> d(0()) , d(x) -> if(le(x, nr()), x) , if(true(), x) -> cons(x, d(s(x))) , if(false(), x) -> nil() , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , nr() -> ack(s(s(s(s(s(s(0())))))), 0()) , ack(0(), x) -> s(x) , ack(s(x), 0()) -> ack(x, s(0())) , ack(s(x), s(y)) -> ack(x, ack(s(x), 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. { if^#(false(), x) -> c_4() , le^#(0(), y) -> c_5() , le^#(s(x), 0()) -> c_6() , ack^#(0(), x) -> c_9() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { numbers^#() -> c_1(d^#(0())) , d^#(x) -> c_2(if^#(le(x, nr()), x), le^#(x, nr()), nr^#()) , if^#(true(), x) -> c_3(d^#(s(x))) , le^#(s(x), s(y)) -> c_7(le^#(x, y)) , nr^#() -> c_8(ack^#(s(s(s(s(s(s(0())))))), 0())) , ack^#(s(x), 0()) -> c_10(ack^#(x, s(0()))) , ack^#(s(x), s(y)) -> c_11(ack^#(x, ack(s(x), y)), ack^#(s(x), y)) } Weak Trs: { numbers() -> d(0()) , d(x) -> if(le(x, nr()), x) , if(true(), x) -> cons(x, d(s(x))) , if(false(), x) -> nil() , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , nr() -> ack(s(s(s(s(s(s(0())))))), 0()) , ack(0(), x) -> s(x) , ack(s(x), 0()) -> ack(x, s(0())) , ack(s(x), s(y)) -> ack(x, ack(s(x), y)) } Obligation: innermost runtime complexity Answer: MAYBE Consider the dependency graph 1: numbers^#() -> c_1(d^#(0())) -->_1 d^#(x) -> c_2(if^#(le(x, nr()), x), le^#(x, nr()), nr^#()) :2 2: d^#(x) -> c_2(if^#(le(x, nr()), x), le^#(x, nr()), nr^#()) -->_3 nr^#() -> c_8(ack^#(s(s(s(s(s(s(0())))))), 0())) :5 -->_2 le^#(s(x), s(y)) -> c_7(le^#(x, y)) :4 -->_1 if^#(true(), x) -> c_3(d^#(s(x))) :3 3: if^#(true(), x) -> c_3(d^#(s(x))) -->_1 d^#(x) -> c_2(if^#(le(x, nr()), x), le^#(x, nr()), nr^#()) :2 4: le^#(s(x), s(y)) -> c_7(le^#(x, y)) -->_1 le^#(s(x), s(y)) -> c_7(le^#(x, y)) :4 5: nr^#() -> c_8(ack^#(s(s(s(s(s(s(0())))))), 0())) -->_1 ack^#(s(x), 0()) -> c_10(ack^#(x, s(0()))) :6 6: ack^#(s(x), 0()) -> c_10(ack^#(x, s(0()))) -->_1 ack^#(s(x), s(y)) -> c_11(ack^#(x, ack(s(x), y)), ack^#(s(x), y)) :7 7: ack^#(s(x), s(y)) -> c_11(ack^#(x, ack(s(x), y)), ack^#(s(x), y)) -->_2 ack^#(s(x), s(y)) -> c_11(ack^#(x, ack(s(x), y)), ack^#(s(x), y)) :7 -->_1 ack^#(s(x), s(y)) -> c_11(ack^#(x, ack(s(x), y)), ack^#(s(x), y)) :7 -->_2 ack^#(s(x), 0()) -> c_10(ack^#(x, s(0()))) :6 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). { numbers^#() -> c_1(d^#(0())) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { d^#(x) -> c_2(if^#(le(x, nr()), x), le^#(x, nr()), nr^#()) , if^#(true(), x) -> c_3(d^#(s(x))) , le^#(s(x), s(y)) -> c_7(le^#(x, y)) , nr^#() -> c_8(ack^#(s(s(s(s(s(s(0())))))), 0())) , ack^#(s(x), 0()) -> c_10(ack^#(x, s(0()))) , ack^#(s(x), s(y)) -> c_11(ack^#(x, ack(s(x), y)), ack^#(s(x), y)) } Weak Trs: { numbers() -> d(0()) , d(x) -> if(le(x, nr()), x) , if(true(), x) -> cons(x, d(s(x))) , if(false(), x) -> nil() , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , nr() -> ack(s(s(s(s(s(s(0())))))), 0()) , ack(0(), x) -> s(x) , ack(s(x), 0()) -> ack(x, s(0())) , ack(s(x), s(y)) -> ack(x, ack(s(x), y)) } Obligation: innermost runtime complexity Answer: MAYBE We replace rewrite rules by usable rules: Weak Usable Rules: { le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , nr() -> ack(s(s(s(s(s(s(0())))))), 0()) , ack(0(), x) -> s(x) , ack(s(x), 0()) -> ack(x, s(0())) , ack(s(x), s(y)) -> ack(x, ack(s(x), y)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { d^#(x) -> c_2(if^#(le(x, nr()), x), le^#(x, nr()), nr^#()) , if^#(true(), x) -> c_3(d^#(s(x))) , le^#(s(x), s(y)) -> c_7(le^#(x, y)) , nr^#() -> c_8(ack^#(s(s(s(s(s(s(0())))))), 0())) , ack^#(s(x), 0()) -> c_10(ack^#(x, s(0()))) , ack^#(s(x), s(y)) -> c_11(ack^#(x, ack(s(x), y)), ack^#(s(x), y)) } Weak Trs: { le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , nr() -> ack(s(s(s(s(s(s(0())))))), 0()) , ack(0(), x) -> s(x) , ack(s(x), 0()) -> ack(x, s(0())) , ack(s(x), s(y)) -> ack(x, ack(s(x), y)) } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..