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)) , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , inc(0()) -> 0() , inc(s(x)) -> s(inc(x)) , log(x) -> log2(x, 0()) , log2(x, y) -> if(le(x, s(0())), x, inc(y)) , if(true(), x, s(y)) -> y , if(false(), x, y) -> log2(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)) , le^#(0(), y) -> c_4() , le^#(s(x), 0()) -> c_5() , le^#(s(x), s(y)) -> c_6(le^#(x, y)) , inc^#(0()) -> c_7() , inc^#(s(x)) -> c_8(inc^#(x)) , log^#(x) -> c_9(log2^#(x, 0())) , log2^#(x, y) -> c_10(if^#(le(x, s(0())), x, inc(y)), le^#(x, s(0())), inc^#(y)) , if^#(true(), x, s(y)) -> c_11() , if^#(false(), x, y) -> c_12(log2^#(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)) , le^#(0(), y) -> c_4() , le^#(s(x), 0()) -> c_5() , le^#(s(x), s(y)) -> c_6(le^#(x, y)) , inc^#(0()) -> c_7() , inc^#(s(x)) -> c_8(inc^#(x)) , log^#(x) -> c_9(log2^#(x, 0())) , log2^#(x, y) -> c_10(if^#(le(x, s(0())), x, inc(y)), le^#(x, s(0())), inc^#(y)) , if^#(true(), x, s(y)) -> c_11() , if^#(false(), x, y) -> c_12(log2^#(half(x), y), half^#(x)) } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , inc(0()) -> 0() , inc(s(x)) -> s(inc(x)) , log(x) -> log2(x, 0()) , log2(x, y) -> if(le(x, s(0())), x, inc(y)) , if(true(), x, s(y)) -> y , if(false(), x, y) -> log2(half(x), y) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {1,2,4,5,7,11} by applications of Pre({1,2,4,5,7,11}) = {3,6,8,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: le^#(0(), y) -> c_4() , 5: le^#(s(x), 0()) -> c_5() , 6: le^#(s(x), s(y)) -> c_6(le^#(x, y)) , 7: inc^#(0()) -> c_7() , 8: inc^#(s(x)) -> c_8(inc^#(x)) , 9: log^#(x) -> c_9(log2^#(x, 0())) , 10: log2^#(x, y) -> c_10(if^#(le(x, s(0())), x, inc(y)), le^#(x, s(0())), inc^#(y)) , 11: if^#(true(), x, s(y)) -> c_11() , 12: if^#(false(), x, y) -> c_12(log2^#(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)) , le^#(s(x), s(y)) -> c_6(le^#(x, y)) , inc^#(s(x)) -> c_8(inc^#(x)) , log^#(x) -> c_9(log2^#(x, 0())) , log2^#(x, y) -> c_10(if^#(le(x, s(0())), x, inc(y)), le^#(x, s(0())), inc^#(y)) , if^#(false(), x, y) -> c_12(log2^#(half(x), y), half^#(x)) } Weak DPs: { half^#(0()) -> c_1() , half^#(s(0())) -> c_2() , le^#(0(), y) -> c_4() , le^#(s(x), 0()) -> c_5() , inc^#(0()) -> c_7() , if^#(true(), x, s(y)) -> c_11() } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , inc(0()) -> 0() , inc(s(x)) -> s(inc(x)) , log(x) -> log2(x, 0()) , log2(x, y) -> if(le(x, s(0())), x, inc(y)) , if(true(), x, s(y)) -> y , if(false(), x, y) -> log2(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() , le^#(0(), y) -> c_4() , le^#(s(x), 0()) -> c_5() , inc^#(0()) -> c_7() , if^#(true(), x, s(y)) -> 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)) , le^#(s(x), s(y)) -> c_6(le^#(x, y)) , inc^#(s(x)) -> c_8(inc^#(x)) , log^#(x) -> c_9(log2^#(x, 0())) , log2^#(x, y) -> c_10(if^#(le(x, s(0())), x, inc(y)), le^#(x, s(0())), inc^#(y)) , if^#(false(), x, y) -> c_12(log2^#(half(x), y), half^#(x)) } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , inc(0()) -> 0() , inc(s(x)) -> s(inc(x)) , log(x) -> log2(x, 0()) , log2(x, y) -> if(le(x, s(0())), x, inc(y)) , if(true(), x, s(y)) -> y , if(false(), x, y) -> log2(half(x), y) } Obligation: innermost runtime complexity Answer: MAYBE Consider the dependency graph 1: half^#(s(s(x))) -> c_3(half^#(x)) -->_1 half^#(s(s(x))) -> c_3(half^#(x)) :1 2: le^#(s(x), s(y)) -> c_6(le^#(x, y)) -->_1 le^#(s(x), s(y)) -> c_6(le^#(x, y)) :2 3: inc^#(s(x)) -> c_8(inc^#(x)) -->_1 inc^#(s(x)) -> c_8(inc^#(x)) :3 4: log^#(x) -> c_9(log2^#(x, 0())) -->_1 log2^#(x, y) -> c_10(if^#(le(x, s(0())), x, inc(y)), le^#(x, s(0())), inc^#(y)) :5 5: log2^#(x, y) -> c_10(if^#(le(x, s(0())), x, inc(y)), le^#(x, s(0())), inc^#(y)) -->_1 if^#(false(), x, y) -> c_12(log2^#(half(x), y), half^#(x)) :6 -->_3 inc^#(s(x)) -> c_8(inc^#(x)) :3 -->_2 le^#(s(x), s(y)) -> c_6(le^#(x, y)) :2 6: if^#(false(), x, y) -> c_12(log2^#(half(x), y), half^#(x)) -->_1 log2^#(x, y) -> c_10(if^#(le(x, s(0())), x, inc(y)), le^#(x, s(0())), inc^#(y)) :5 -->_2 half^#(s(s(x))) -> c_3(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). { log^#(x) -> c_9(log2^#(x, 0())) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { half^#(s(s(x))) -> c_3(half^#(x)) , le^#(s(x), s(y)) -> c_6(le^#(x, y)) , inc^#(s(x)) -> c_8(inc^#(x)) , log2^#(x, y) -> c_10(if^#(le(x, s(0())), x, inc(y)), le^#(x, s(0())), inc^#(y)) , if^#(false(), x, y) -> c_12(log2^#(half(x), y), half^#(x)) } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , inc(0()) -> 0() , inc(s(x)) -> s(inc(x)) , log(x) -> log2(x, 0()) , log2(x, y) -> if(le(x, s(0())), x, inc(y)) , if(true(), x, s(y)) -> y , if(false(), x, y) -> log2(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)) , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , inc(0()) -> 0() , inc(s(x)) -> s(inc(x)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { half^#(s(s(x))) -> c_3(half^#(x)) , le^#(s(x), s(y)) -> c_6(le^#(x, y)) , inc^#(s(x)) -> c_8(inc^#(x)) , log2^#(x, y) -> c_10(if^#(le(x, s(0())), x, inc(y)), le^#(x, s(0())), inc^#(y)) , if^#(false(), x, y) -> c_12(log2^#(half(x), y), half^#(x)) } Weak Trs: { half(0()) -> 0() , half(s(0())) -> 0() , half(s(s(x))) -> s(half(x)) , le(0(), y) -> true() , le(s(x), 0()) -> false() , le(s(x), s(y)) -> le(x, y) , inc(0()) -> 0() , inc(s(x)) -> s(inc(x)) } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..