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