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