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) , conv(0()) -> cons(nil(), 0()) , conv(s(x)) -> cons(conv(half(s(x))), lastbit(s(x))) } Obligation: innermost runtime complexity Answer: MAYBE We add following weak dependency pairs: 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)) , conv^#(0()) -> c_7() , conv^#(s(x)) -> c_8(conv^#(half(s(x))), lastbit^#(s(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)) , conv^#(0()) -> c_7() , conv^#(s(x)) -> c_8(conv^#(half(s(x))), lastbit^#(s(x))) } 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) , conv(0()) -> cons(nil(), 0()) , conv(s(x)) -> cons(conv(half(s(x))), lastbit(s(x))) } Obligation: innermost runtime complexity Answer: MAYBE We replace rewrite rules by usable rules: Strict Usable Rules: { 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: { 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)) , conv^#(0()) -> c_7() , conv^#(s(x)) -> c_8(conv^#(half(s(x))), lastbit^#(s(x))) } Strict Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) } Obligation: innermost runtime complexity Answer: MAYBE The weightgap principle applies (using the following constant growth matrix-interpretation) The following argument positions are usable: Uargs(s) = {1}, Uargs(c_3) = {1}, Uargs(c_6) = {1}, Uargs(conv^#) = {1}, Uargs(c_8) = {1, 2} TcT has computed following constructor-restricted matrix interpretation. [half](x1) = [1] x1 + [2] [0] = [1] [s](x1) = [1] x1 + [1] [half^#](x1) = [1] x1 + [2] [c_1] = [1] [c_2] = [1] [c_3](x1) = [1] x1 + [1] [lastbit^#](x1) = [0] [c_4] = [1] [c_5] = [1] [c_6](x1) = [1] x1 + [2] [conv^#](x1) = [2] x1 + [1] [c_7] = [2] [c_8](x1, x2) = [1] x1 + [1] x2 + [0] This order satisfies following ordering constraints: [half(0())] = [3] > [1] = [0()] [half(s(0()))] = [4] > [1] = [0()] [half(s(s(x)))] = [1] x + [4] > [1] x + [3] = [s(half(x))] Further, it can be verified that all rules not oriented are covered by the weightgap condition. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { lastbit^#(0()) -> c_4() , lastbit^#(s(0())) -> c_5() , lastbit^#(s(s(x))) -> c_6(lastbit^#(x)) , conv^#(s(x)) -> c_8(conv^#(half(s(x))), lastbit^#(s(x))) } Weak DPs: { half^#(0()) -> c_1() , half^#(s(0())) -> c_2() , half^#(s(s(x))) -> c_3(half^#(x)) , conv^#(0()) -> c_7() } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {1,2} by applications of Pre({1,2}) = {3,4}. Here rules are labeled as follows: DPs: { 1: lastbit^#(0()) -> c_4() , 2: lastbit^#(s(0())) -> c_5() , 3: lastbit^#(s(s(x))) -> c_6(lastbit^#(x)) , 4: conv^#(s(x)) -> c_8(conv^#(half(s(x))), lastbit^#(s(x))) , 5: half^#(0()) -> c_1() , 6: half^#(s(0())) -> c_2() , 7: half^#(s(s(x))) -> c_3(half^#(x)) , 8: conv^#(0()) -> c_7() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { lastbit^#(s(s(x))) -> c_6(lastbit^#(x)) , conv^#(s(x)) -> c_8(conv^#(half(s(x))), lastbit^#(s(x))) } Weak 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() , conv^#(0()) -> c_7() } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) } 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() , half^#(s(s(x))) -> c_3(half^#(x)) , lastbit^#(0()) -> c_4() , lastbit^#(s(0())) -> c_5() , conv^#(0()) -> c_7() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { lastbit^#(s(s(x))) -> c_6(lastbit^#(x)) , conv^#(s(x)) -> c_8(conv^#(half(s(x))), lastbit^#(s(x))) } Weak Trs: { 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..