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