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