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