MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { inc(s(x)) -> s(inc(x)) , inc(0()) -> s(0()) , plus(x, y) -> ifPlus(eq(x, 0()), minus(x, s(0())), x, inc(x)) , ifPlus(false(), x, y, z) -> plus(x, z) , ifPlus(true(), x, y, z) -> y , eq(x, x) -> true() , eq(s(x), s(y)) -> eq(x, y) , eq(s(x), 0()) -> false() , eq(0(), s(x)) -> false() , eq(0(), 0()) -> true() , minus(x, x) -> 0() , minus(x, 0()) -> x , minus(s(x), s(y)) -> minus(x, y) , minus(0(), x) -> 0() , times(x, y) -> timesIter(x, y, 0()) , timesIter(x, y, z) -> ifTimes(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)) , ifTimes(false(), x, y, z, u) -> timesIter(x, y, u) , ifTimes(true(), x, y, z, u) -> z , f() -> g() , f() -> h() } Obligation: innermost runtime complexity Answer: MAYBE We add following dependency tuples: Strict DPs: { inc^#(s(x)) -> c_1(inc^#(x)) , inc^#(0()) -> c_2() , plus^#(x, y) -> c_3(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), eq^#(x, 0()), minus^#(x, s(0())), inc^#(x)) , ifPlus^#(false(), x, y, z) -> c_4(plus^#(x, z)) , ifPlus^#(true(), x, y, z) -> c_5() , eq^#(x, x) -> c_6() , eq^#(s(x), s(y)) -> c_7(eq^#(x, y)) , eq^#(s(x), 0()) -> c_8() , eq^#(0(), s(x)) -> c_9() , eq^#(0(), 0()) -> c_10() , minus^#(x, x) -> c_11() , minus^#(x, 0()) -> c_12() , minus^#(s(x), s(y)) -> c_13(minus^#(x, y)) , minus^#(0(), x) -> c_14() , times^#(x, y) -> c_15(timesIter^#(x, y, 0())) , timesIter^#(x, y, z) -> c_16(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), eq^#(x, 0()), minus^#(x, s(0())), plus^#(y, z)) , ifTimes^#(false(), x, y, z, u) -> c_17(timesIter^#(x, y, u)) , ifTimes^#(true(), x, y, z, u) -> c_18() , f^#() -> c_19() , f^#() -> c_20() } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { inc^#(s(x)) -> c_1(inc^#(x)) , inc^#(0()) -> c_2() , plus^#(x, y) -> c_3(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), eq^#(x, 0()), minus^#(x, s(0())), inc^#(x)) , ifPlus^#(false(), x, y, z) -> c_4(plus^#(x, z)) , ifPlus^#(true(), x, y, z) -> c_5() , eq^#(x, x) -> c_6() , eq^#(s(x), s(y)) -> c_7(eq^#(x, y)) , eq^#(s(x), 0()) -> c_8() , eq^#(0(), s(x)) -> c_9() , eq^#(0(), 0()) -> c_10() , minus^#(x, x) -> c_11() , minus^#(x, 0()) -> c_12() , minus^#(s(x), s(y)) -> c_13(minus^#(x, y)) , minus^#(0(), x) -> c_14() , times^#(x, y) -> c_15(timesIter^#(x, y, 0())) , timesIter^#(x, y, z) -> c_16(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), eq^#(x, 0()), minus^#(x, s(0())), plus^#(y, z)) , ifTimes^#(false(), x, y, z, u) -> c_17(timesIter^#(x, y, u)) , ifTimes^#(true(), x, y, z, u) -> c_18() , f^#() -> c_19() , f^#() -> c_20() } Weak Trs: { inc(s(x)) -> s(inc(x)) , inc(0()) -> s(0()) , plus(x, y) -> ifPlus(eq(x, 0()), minus(x, s(0())), x, inc(x)) , ifPlus(false(), x, y, z) -> plus(x, z) , ifPlus(true(), x, y, z) -> y , eq(x, x) -> true() , eq(s(x), s(y)) -> eq(x, y) , eq(s(x), 0()) -> false() , eq(0(), s(x)) -> false() , eq(0(), 0()) -> true() , minus(x, x) -> 0() , minus(x, 0()) -> x , minus(s(x), s(y)) -> minus(x, y) , minus(0(), x) -> 0() , times(x, y) -> timesIter(x, y, 0()) , timesIter(x, y, z) -> ifTimes(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)) , ifTimes(false(), x, y, z, u) -> timesIter(x, y, u) , ifTimes(true(), x, y, z, u) -> z , f() -> g() , f() -> h() } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {2,5,6,8,9,10,11,12,14,18,19,20} by applications of Pre({2,5,6,8,9,10,11,12,14,18,19,20}) = {1,3,7,13,16}. Here rules are labeled as follows: DPs: { 1: inc^#(s(x)) -> c_1(inc^#(x)) , 2: inc^#(0()) -> c_2() , 3: plus^#(x, y) -> c_3(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), eq^#(x, 0()), minus^#(x, s(0())), inc^#(x)) , 4: ifPlus^#(false(), x, y, z) -> c_4(plus^#(x, z)) , 5: ifPlus^#(true(), x, y, z) -> c_5() , 6: eq^#(x, x) -> c_6() , 7: eq^#(s(x), s(y)) -> c_7(eq^#(x, y)) , 8: eq^#(s(x), 0()) -> c_8() , 9: eq^#(0(), s(x)) -> c_9() , 10: eq^#(0(), 0()) -> c_10() , 11: minus^#(x, x) -> c_11() , 12: minus^#(x, 0()) -> c_12() , 13: minus^#(s(x), s(y)) -> c_13(minus^#(x, y)) , 14: minus^#(0(), x) -> c_14() , 15: times^#(x, y) -> c_15(timesIter^#(x, y, 0())) , 16: timesIter^#(x, y, z) -> c_16(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), eq^#(x, 0()), minus^#(x, s(0())), plus^#(y, z)) , 17: ifTimes^#(false(), x, y, z, u) -> c_17(timesIter^#(x, y, u)) , 18: ifTimes^#(true(), x, y, z, u) -> c_18() , 19: f^#() -> c_19() , 20: f^#() -> c_20() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { inc^#(s(x)) -> c_1(inc^#(x)) , plus^#(x, y) -> c_3(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), eq^#(x, 0()), minus^#(x, s(0())), inc^#(x)) , ifPlus^#(false(), x, y, z) -> c_4(plus^#(x, z)) , eq^#(s(x), s(y)) -> c_7(eq^#(x, y)) , minus^#(s(x), s(y)) -> c_13(minus^#(x, y)) , times^#(x, y) -> c_15(timesIter^#(x, y, 0())) , timesIter^#(x, y, z) -> c_16(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), eq^#(x, 0()), minus^#(x, s(0())), plus^#(y, z)) , ifTimes^#(false(), x, y, z, u) -> c_17(timesIter^#(x, y, u)) } Weak DPs: { inc^#(0()) -> c_2() , ifPlus^#(true(), x, y, z) -> c_5() , eq^#(x, x) -> c_6() , eq^#(s(x), 0()) -> c_8() , eq^#(0(), s(x)) -> c_9() , eq^#(0(), 0()) -> c_10() , minus^#(x, x) -> c_11() , minus^#(x, 0()) -> c_12() , minus^#(0(), x) -> c_14() , ifTimes^#(true(), x, y, z, u) -> c_18() , f^#() -> c_19() , f^#() -> c_20() } Weak Trs: { inc(s(x)) -> s(inc(x)) , inc(0()) -> s(0()) , plus(x, y) -> ifPlus(eq(x, 0()), minus(x, s(0())), x, inc(x)) , ifPlus(false(), x, y, z) -> plus(x, z) , ifPlus(true(), x, y, z) -> y , eq(x, x) -> true() , eq(s(x), s(y)) -> eq(x, y) , eq(s(x), 0()) -> false() , eq(0(), s(x)) -> false() , eq(0(), 0()) -> true() , minus(x, x) -> 0() , minus(x, 0()) -> x , minus(s(x), s(y)) -> minus(x, y) , minus(0(), x) -> 0() , times(x, y) -> timesIter(x, y, 0()) , timesIter(x, y, z) -> ifTimes(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)) , ifTimes(false(), x, y, z, u) -> timesIter(x, y, u) , ifTimes(true(), x, y, z, u) -> z , f() -> g() , f() -> h() } 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. { inc^#(0()) -> c_2() , ifPlus^#(true(), x, y, z) -> c_5() , eq^#(x, x) -> c_6() , eq^#(s(x), 0()) -> c_8() , eq^#(0(), s(x)) -> c_9() , eq^#(0(), 0()) -> c_10() , minus^#(x, x) -> c_11() , minus^#(x, 0()) -> c_12() , minus^#(0(), x) -> c_14() , ifTimes^#(true(), x, y, z, u) -> c_18() , f^#() -> c_19() , f^#() -> c_20() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { inc^#(s(x)) -> c_1(inc^#(x)) , plus^#(x, y) -> c_3(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), eq^#(x, 0()), minus^#(x, s(0())), inc^#(x)) , ifPlus^#(false(), x, y, z) -> c_4(plus^#(x, z)) , eq^#(s(x), s(y)) -> c_7(eq^#(x, y)) , minus^#(s(x), s(y)) -> c_13(minus^#(x, y)) , times^#(x, y) -> c_15(timesIter^#(x, y, 0())) , timesIter^#(x, y, z) -> c_16(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), eq^#(x, 0()), minus^#(x, s(0())), plus^#(y, z)) , ifTimes^#(false(), x, y, z, u) -> c_17(timesIter^#(x, y, u)) } Weak Trs: { inc(s(x)) -> s(inc(x)) , inc(0()) -> s(0()) , plus(x, y) -> ifPlus(eq(x, 0()), minus(x, s(0())), x, inc(x)) , ifPlus(false(), x, y, z) -> plus(x, z) , ifPlus(true(), x, y, z) -> y , eq(x, x) -> true() , eq(s(x), s(y)) -> eq(x, y) , eq(s(x), 0()) -> false() , eq(0(), s(x)) -> false() , eq(0(), 0()) -> true() , minus(x, x) -> 0() , minus(x, 0()) -> x , minus(s(x), s(y)) -> minus(x, y) , minus(0(), x) -> 0() , times(x, y) -> timesIter(x, y, 0()) , timesIter(x, y, z) -> ifTimes(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)) , ifTimes(false(), x, y, z, u) -> timesIter(x, y, u) , ifTimes(true(), x, y, z, u) -> z , f() -> g() , f() -> h() } Obligation: innermost runtime complexity Answer: MAYBE Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { plus^#(x, y) -> c_3(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), eq^#(x, 0()), minus^#(x, s(0())), inc^#(x)) , timesIter^#(x, y, z) -> c_16(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), eq^#(x, 0()), minus^#(x, s(0())), plus^#(y, z)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { inc^#(s(x)) -> c_1(inc^#(x)) , plus^#(x, y) -> c_2(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), minus^#(x, s(0())), inc^#(x)) , ifPlus^#(false(), x, y, z) -> c_3(plus^#(x, z)) , eq^#(s(x), s(y)) -> c_4(eq^#(x, y)) , minus^#(s(x), s(y)) -> c_5(minus^#(x, y)) , times^#(x, y) -> c_6(timesIter^#(x, y, 0())) , timesIter^#(x, y, z) -> c_7(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), minus^#(x, s(0())), plus^#(y, z)) , ifTimes^#(false(), x, y, z, u) -> c_8(timesIter^#(x, y, u)) } Weak Trs: { inc(s(x)) -> s(inc(x)) , inc(0()) -> s(0()) , plus(x, y) -> ifPlus(eq(x, 0()), minus(x, s(0())), x, inc(x)) , ifPlus(false(), x, y, z) -> plus(x, z) , ifPlus(true(), x, y, z) -> y , eq(x, x) -> true() , eq(s(x), s(y)) -> eq(x, y) , eq(s(x), 0()) -> false() , eq(0(), s(x)) -> false() , eq(0(), 0()) -> true() , minus(x, x) -> 0() , minus(x, 0()) -> x , minus(s(x), s(y)) -> minus(x, y) , minus(0(), x) -> 0() , times(x, y) -> timesIter(x, y, 0()) , timesIter(x, y, z) -> ifTimes(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)) , ifTimes(false(), x, y, z, u) -> timesIter(x, y, u) , ifTimes(true(), x, y, z, u) -> z , f() -> g() , f() -> h() } Obligation: innermost runtime complexity Answer: MAYBE We replace rewrite rules by usable rules: Weak Usable Rules: { inc(s(x)) -> s(inc(x)) , inc(0()) -> s(0()) , plus(x, y) -> ifPlus(eq(x, 0()), minus(x, s(0())), x, inc(x)) , ifPlus(false(), x, y, z) -> plus(x, z) , ifPlus(true(), x, y, z) -> y , eq(x, x) -> true() , eq(s(x), s(y)) -> eq(x, y) , eq(s(x), 0()) -> false() , eq(0(), s(x)) -> false() , eq(0(), 0()) -> true() , minus(x, x) -> 0() , minus(x, 0()) -> x , minus(s(x), s(y)) -> minus(x, y) , minus(0(), x) -> 0() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { inc^#(s(x)) -> c_1(inc^#(x)) , plus^#(x, y) -> c_2(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), minus^#(x, s(0())), inc^#(x)) , ifPlus^#(false(), x, y, z) -> c_3(plus^#(x, z)) , eq^#(s(x), s(y)) -> c_4(eq^#(x, y)) , minus^#(s(x), s(y)) -> c_5(minus^#(x, y)) , times^#(x, y) -> c_6(timesIter^#(x, y, 0())) , timesIter^#(x, y, z) -> c_7(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), minus^#(x, s(0())), plus^#(y, z)) , ifTimes^#(false(), x, y, z, u) -> c_8(timesIter^#(x, y, u)) } Weak Trs: { inc(s(x)) -> s(inc(x)) , inc(0()) -> s(0()) , plus(x, y) -> ifPlus(eq(x, 0()), minus(x, s(0())), x, inc(x)) , ifPlus(false(), x, y, z) -> plus(x, z) , ifPlus(true(), x, y, z) -> y , eq(x, x) -> true() , eq(s(x), s(y)) -> eq(x, y) , eq(s(x), 0()) -> false() , eq(0(), s(x)) -> false() , eq(0(), 0()) -> true() , minus(x, x) -> 0() , minus(x, 0()) -> x , minus(s(x), s(y)) -> minus(x, y) , minus(0(), x) -> 0() } Obligation: innermost runtime complexity Answer: MAYBE Consider the dependency graph 1: inc^#(s(x)) -> c_1(inc^#(x)) -->_1 inc^#(s(x)) -> c_1(inc^#(x)) :1 2: plus^#(x, y) -> c_2(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), minus^#(x, s(0())), inc^#(x)) -->_2 minus^#(s(x), s(y)) -> c_5(minus^#(x, y)) :5 -->_1 ifPlus^#(false(), x, y, z) -> c_3(plus^#(x, z)) :3 -->_3 inc^#(s(x)) -> c_1(inc^#(x)) :1 3: ifPlus^#(false(), x, y, z) -> c_3(plus^#(x, z)) -->_1 plus^#(x, y) -> c_2(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), minus^#(x, s(0())), inc^#(x)) :2 4: eq^#(s(x), s(y)) -> c_4(eq^#(x, y)) -->_1 eq^#(s(x), s(y)) -> c_4(eq^#(x, y)) :4 5: minus^#(s(x), s(y)) -> c_5(minus^#(x, y)) -->_1 minus^#(s(x), s(y)) -> c_5(minus^#(x, y)) :5 6: times^#(x, y) -> c_6(timesIter^#(x, y, 0())) -->_1 timesIter^#(x, y, z) -> c_7(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), minus^#(x, s(0())), plus^#(y, z)) :7 7: timesIter^#(x, y, z) -> c_7(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), minus^#(x, s(0())), plus^#(y, z)) -->_1 ifTimes^#(false(), x, y, z, u) -> c_8(timesIter^#(x, y, u)) :8 -->_2 minus^#(s(x), s(y)) -> c_5(minus^#(x, y)) :5 -->_3 plus^#(x, y) -> c_2(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), minus^#(x, s(0())), inc^#(x)) :2 8: ifTimes^#(false(), x, y, z, u) -> c_8(timesIter^#(x, y, u)) -->_1 timesIter^#(x, y, z) -> c_7(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), minus^#(x, s(0())), plus^#(y, z)) :7 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_6(timesIter^#(x, y, 0())) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { inc^#(s(x)) -> c_1(inc^#(x)) , plus^#(x, y) -> c_2(ifPlus^#(eq(x, 0()), minus(x, s(0())), x, inc(x)), minus^#(x, s(0())), inc^#(x)) , ifPlus^#(false(), x, y, z) -> c_3(plus^#(x, z)) , eq^#(s(x), s(y)) -> c_4(eq^#(x, y)) , minus^#(s(x), s(y)) -> c_5(minus^#(x, y)) , timesIter^#(x, y, z) -> c_7(ifTimes^#(eq(x, 0()), minus(x, s(0())), y, z, plus(y, z)), minus^#(x, s(0())), plus^#(y, z)) , ifTimes^#(false(), x, y, z, u) -> c_8(timesIter^#(x, y, u)) } Weak Trs: { inc(s(x)) -> s(inc(x)) , inc(0()) -> s(0()) , plus(x, y) -> ifPlus(eq(x, 0()), minus(x, s(0())), x, inc(x)) , ifPlus(false(), x, y, z) -> plus(x, z) , ifPlus(true(), x, y, z) -> y , eq(x, x) -> true() , eq(s(x), s(y)) -> eq(x, y) , eq(s(x), 0()) -> false() , eq(0(), s(x)) -> false() , eq(0(), 0()) -> true() , minus(x, x) -> 0() , minus(x, 0()) -> x , minus(s(x), s(y)) -> minus(x, y) , minus(0(), x) -> 0() } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..