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)) , lastbit(0()) -> 0() , lastbit(s(0())) -> s(0()) , lastbit(s(s(x))) -> lastbit(x) , zero(0()) -> true() , zero(s(x)) -> false() , conv(x) -> conviter(x, cons(0(), nil())) , conviter(x, l) -> if(zero(x), x, l) , if(true(), x, l) -> l , if(false(), x, l) -> conviter(half(x), cons(lastbit(x), l)) } 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)) , lastbit^#(0()) -> c_4() , lastbit^#(s(0())) -> c_5() , lastbit^#(s(s(x))) -> c_6(lastbit^#(x)) , zero^#(0()) -> c_7() , zero^#(s(x)) -> c_8() , conv^#(x) -> c_9(conviter^#(x, cons(0(), nil()))) , conviter^#(x, l) -> c_10(if^#(zero(x), x, l), zero^#(x)) , if^#(true(), x, l) -> c_11() , if^#(false(), x, l) -> c_12(conviter^#(half(x), cons(lastbit(x), l)), half^#(x), lastbit^#(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)) , lastbit^#(0()) -> c_4() , lastbit^#(s(0())) -> c_5() , lastbit^#(s(s(x))) -> c_6(lastbit^#(x)) , zero^#(0()) -> c_7() , zero^#(s(x)) -> c_8() , conv^#(x) -> c_9(conviter^#(x, cons(0(), nil()))) , conviter^#(x, l) -> c_10(if^#(zero(x), x, l), zero^#(x)) , if^#(true(), x, l) -> c_11() , if^#(false(), x, l) -> c_12(conviter^#(half(x), cons(lastbit(x), l)), half^#(x), lastbit^#(x)) } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) , lastbit(0()) -> 0() , lastbit(s(0())) -> s(0()) , lastbit(s(s(x))) -> lastbit(x) , zero(0()) -> true() , zero(s(x)) -> false() , conv(x) -> conviter(x, cons(0(), nil())) , conviter(x, l) -> if(zero(x), x, l) , if(true(), x, l) -> l , if(false(), x, l) -> conviter(half(x), cons(lastbit(x), l)) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {1,2,4,5,7,8,11} by applications of Pre({1,2,4,5,7,8,11}) = {3,6,10,12}. 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: lastbit^#(0()) -> c_4() , 5: lastbit^#(s(0())) -> c_5() , 6: lastbit^#(s(s(x))) -> c_6(lastbit^#(x)) , 7: zero^#(0()) -> c_7() , 8: zero^#(s(x)) -> c_8() , 9: conv^#(x) -> c_9(conviter^#(x, cons(0(), nil()))) , 10: conviter^#(x, l) -> c_10(if^#(zero(x), x, l), zero^#(x)) , 11: if^#(true(), x, l) -> c_11() , 12: if^#(false(), x, l) -> c_12(conviter^#(half(x), cons(lastbit(x), l)), half^#(x), lastbit^#(x)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { half^#(s(s(x))) -> c_3(half^#(x)) , lastbit^#(s(s(x))) -> c_6(lastbit^#(x)) , conv^#(x) -> c_9(conviter^#(x, cons(0(), nil()))) , conviter^#(x, l) -> c_10(if^#(zero(x), x, l), zero^#(x)) , if^#(false(), x, l) -> c_12(conviter^#(half(x), cons(lastbit(x), l)), half^#(x), lastbit^#(x)) } Weak DPs: { half^#(0()) -> c_1() , half^#(s(0())) -> c_2() , lastbit^#(0()) -> c_4() , lastbit^#(s(0())) -> c_5() , zero^#(0()) -> c_7() , zero^#(s(x)) -> c_8() , if^#(true(), x, l) -> c_11() } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) , lastbit(0()) -> 0() , lastbit(s(0())) -> s(0()) , lastbit(s(s(x))) -> lastbit(x) , zero(0()) -> true() , zero(s(x)) -> false() , conv(x) -> conviter(x, cons(0(), nil())) , conviter(x, l) -> if(zero(x), x, l) , if(true(), x, l) -> l , if(false(), x, l) -> conviter(half(x), cons(lastbit(x), l)) } 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() , lastbit^#(0()) -> c_4() , lastbit^#(s(0())) -> c_5() , zero^#(0()) -> c_7() , zero^#(s(x)) -> c_8() , if^#(true(), x, l) -> c_11() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { half^#(s(s(x))) -> c_3(half^#(x)) , lastbit^#(s(s(x))) -> c_6(lastbit^#(x)) , conv^#(x) -> c_9(conviter^#(x, cons(0(), nil()))) , conviter^#(x, l) -> c_10(if^#(zero(x), x, l), zero^#(x)) , if^#(false(), x, l) -> c_12(conviter^#(half(x), cons(lastbit(x), l)), half^#(x), lastbit^#(x)) } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) , lastbit(0()) -> 0() , lastbit(s(0())) -> s(0()) , lastbit(s(s(x))) -> lastbit(x) , zero(0()) -> true() , zero(s(x)) -> false() , conv(x) -> conviter(x, cons(0(), nil())) , conviter(x, l) -> if(zero(x), x, l) , if(true(), x, l) -> l , if(false(), x, l) -> conviter(half(x), cons(lastbit(x), l)) } Obligation: innermost runtime complexity Answer: MAYBE Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { conviter^#(x, l) -> c_10(if^#(zero(x), x, l), zero^#(x)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { half^#(s(s(x))) -> c_1(half^#(x)) , lastbit^#(s(s(x))) -> c_2(lastbit^#(x)) , conv^#(x) -> c_3(conviter^#(x, cons(0(), nil()))) , conviter^#(x, l) -> c_4(if^#(zero(x), x, l)) , if^#(false(), x, l) -> c_5(conviter^#(half(x), cons(lastbit(x), l)), half^#(x), lastbit^#(x)) } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) , lastbit(0()) -> 0() , lastbit(s(0())) -> s(0()) , lastbit(s(s(x))) -> lastbit(x) , zero(0()) -> true() , zero(s(x)) -> false() , conv(x) -> conviter(x, cons(0(), nil())) , conviter(x, l) -> if(zero(x), x, l) , if(true(), x, l) -> l , if(false(), x, l) -> conviter(half(x), cons(lastbit(x), l)) } 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)) , lastbit(0()) -> 0() , lastbit(s(0())) -> s(0()) , lastbit(s(s(x))) -> lastbit(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)) , lastbit^#(s(s(x))) -> c_2(lastbit^#(x)) , conv^#(x) -> c_3(conviter^#(x, cons(0(), nil()))) , conviter^#(x, l) -> c_4(if^#(zero(x), x, l)) , if^#(false(), x, l) -> c_5(conviter^#(half(x), cons(lastbit(x), l)), half^#(x), lastbit^#(x)) } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) , lastbit(0()) -> 0() , lastbit(s(0())) -> s(0()) , lastbit(s(s(x))) -> lastbit(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: lastbit^#(s(s(x))) -> c_2(lastbit^#(x)) -->_1 lastbit^#(s(s(x))) -> c_2(lastbit^#(x)) :2 3: conv^#(x) -> c_3(conviter^#(x, cons(0(), nil()))) -->_1 conviter^#(x, l) -> c_4(if^#(zero(x), x, l)) :4 4: conviter^#(x, l) -> c_4(if^#(zero(x), x, l)) -->_1 if^#(false(), x, l) -> c_5(conviter^#(half(x), cons(lastbit(x), l)), half^#(x), lastbit^#(x)) :5 5: if^#(false(), x, l) -> c_5(conviter^#(half(x), cons(lastbit(x), l)), half^#(x), lastbit^#(x)) -->_1 conviter^#(x, l) -> c_4(if^#(zero(x), x, l)) :4 -->_3 lastbit^#(s(s(x))) -> c_2(lastbit^#(x)) :2 -->_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). { conv^#(x) -> c_3(conviter^#(x, cons(0(), nil()))) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { half^#(s(s(x))) -> c_1(half^#(x)) , lastbit^#(s(s(x))) -> c_2(lastbit^#(x)) , conviter^#(x, l) -> c_4(if^#(zero(x), x, l)) , if^#(false(), x, l) -> c_5(conviter^#(half(x), cons(lastbit(x), l)), half^#(x), lastbit^#(x)) } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) , lastbit(0()) -> 0() , lastbit(s(0())) -> s(0()) , lastbit(s(s(x))) -> lastbit(x) , zero(0()) -> true() , zero(s(x)) -> false() } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..