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