MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { plus(0(), x) -> x , plus(s(x), y) -> s(plus(x, y)) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , p(0()) -> 0() , p(s(x)) -> x , minus(x, 0()) -> x , minus(x, s(y)) -> p(minus(x, y)) , minus(0(), x) -> 0() , isZero(0()) -> true() , isZero(s(x)) -> false() , facIter(x, y) -> if(isZero(x), minus(x, s(0())), y, times(y, x)) , if(true(), x, y, z) -> y , if(false(), x, y, z) -> facIter(x, z) , factorial(x) -> facIter(x, s(0())) } Obligation: innermost runtime complexity Answer: MAYBE We add following dependency tuples: Strict DPs: { plus^#(0(), x) -> c_1() , plus^#(s(x), y) -> c_2(plus^#(x, y)) , times^#(0(), y) -> c_3() , times^#(s(x), y) -> c_4(plus^#(y, times(x, y)), times^#(x, y)) , p^#(0()) -> c_5() , p^#(s(x)) -> c_6() , minus^#(x, 0()) -> c_7() , minus^#(x, s(y)) -> c_8(p^#(minus(x, y)), minus^#(x, y)) , minus^#(0(), x) -> c_9() , isZero^#(0()) -> c_10() , isZero^#(s(x)) -> c_11() , facIter^#(x, y) -> c_12(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), isZero^#(x), minus^#(x, s(0())), times^#(y, x)) , if^#(true(), x, y, z) -> c_13() , if^#(false(), x, y, z) -> c_14(facIter^#(x, z)) , factorial^#(x) -> c_15(facIter^#(x, s(0()))) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { plus^#(0(), x) -> c_1() , plus^#(s(x), y) -> c_2(plus^#(x, y)) , times^#(0(), y) -> c_3() , times^#(s(x), y) -> c_4(plus^#(y, times(x, y)), times^#(x, y)) , p^#(0()) -> c_5() , p^#(s(x)) -> c_6() , minus^#(x, 0()) -> c_7() , minus^#(x, s(y)) -> c_8(p^#(minus(x, y)), minus^#(x, y)) , minus^#(0(), x) -> c_9() , isZero^#(0()) -> c_10() , isZero^#(s(x)) -> c_11() , facIter^#(x, y) -> c_12(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), isZero^#(x), minus^#(x, s(0())), times^#(y, x)) , if^#(true(), x, y, z) -> c_13() , if^#(false(), x, y, z) -> c_14(facIter^#(x, z)) , factorial^#(x) -> c_15(facIter^#(x, s(0()))) } Weak Trs: { plus(0(), x) -> x , plus(s(x), y) -> s(plus(x, y)) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , p(0()) -> 0() , p(s(x)) -> x , minus(x, 0()) -> x , minus(x, s(y)) -> p(minus(x, y)) , minus(0(), x) -> 0() , isZero(0()) -> true() , isZero(s(x)) -> false() , facIter(x, y) -> if(isZero(x), minus(x, s(0())), y, times(y, x)) , if(true(), x, y, z) -> y , if(false(), x, y, z) -> facIter(x, z) , factorial(x) -> facIter(x, s(0())) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {1,3,5,6,7,9,10,11,13} by applications of Pre({1,3,5,6,7,9,10,11,13}) = {2,4,8,12}. Here rules are labeled as follows: DPs: { 1: plus^#(0(), x) -> c_1() , 2: plus^#(s(x), y) -> c_2(plus^#(x, y)) , 3: times^#(0(), y) -> c_3() , 4: times^#(s(x), y) -> c_4(plus^#(y, times(x, y)), times^#(x, y)) , 5: p^#(0()) -> c_5() , 6: p^#(s(x)) -> c_6() , 7: minus^#(x, 0()) -> c_7() , 8: minus^#(x, s(y)) -> c_8(p^#(minus(x, y)), minus^#(x, y)) , 9: minus^#(0(), x) -> c_9() , 10: isZero^#(0()) -> c_10() , 11: isZero^#(s(x)) -> c_11() , 12: facIter^#(x, y) -> c_12(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), isZero^#(x), minus^#(x, s(0())), times^#(y, x)) , 13: if^#(true(), x, y, z) -> c_13() , 14: if^#(false(), x, y, z) -> c_14(facIter^#(x, z)) , 15: factorial^#(x) -> c_15(facIter^#(x, s(0()))) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { plus^#(s(x), y) -> c_2(plus^#(x, y)) , times^#(s(x), y) -> c_4(plus^#(y, times(x, y)), times^#(x, y)) , minus^#(x, s(y)) -> c_8(p^#(minus(x, y)), minus^#(x, y)) , facIter^#(x, y) -> c_12(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), isZero^#(x), minus^#(x, s(0())), times^#(y, x)) , if^#(false(), x, y, z) -> c_14(facIter^#(x, z)) , factorial^#(x) -> c_15(facIter^#(x, s(0()))) } Weak DPs: { plus^#(0(), x) -> c_1() , times^#(0(), y) -> c_3() , p^#(0()) -> c_5() , p^#(s(x)) -> c_6() , minus^#(x, 0()) -> c_7() , minus^#(0(), x) -> c_9() , isZero^#(0()) -> c_10() , isZero^#(s(x)) -> c_11() , if^#(true(), x, y, z) -> c_13() } Weak Trs: { plus(0(), x) -> x , plus(s(x), y) -> s(plus(x, y)) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , p(0()) -> 0() , p(s(x)) -> x , minus(x, 0()) -> x , minus(x, s(y)) -> p(minus(x, y)) , minus(0(), x) -> 0() , isZero(0()) -> true() , isZero(s(x)) -> false() , facIter(x, y) -> if(isZero(x), minus(x, s(0())), y, times(y, x)) , if(true(), x, y, z) -> y , if(false(), x, y, z) -> facIter(x, z) , factorial(x) -> facIter(x, s(0())) } 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. { plus^#(0(), x) -> c_1() , times^#(0(), y) -> c_3() , p^#(0()) -> c_5() , p^#(s(x)) -> c_6() , minus^#(x, 0()) -> c_7() , minus^#(0(), x) -> c_9() , isZero^#(0()) -> c_10() , isZero^#(s(x)) -> c_11() , if^#(true(), x, y, z) -> c_13() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { plus^#(s(x), y) -> c_2(plus^#(x, y)) , times^#(s(x), y) -> c_4(plus^#(y, times(x, y)), times^#(x, y)) , minus^#(x, s(y)) -> c_8(p^#(minus(x, y)), minus^#(x, y)) , facIter^#(x, y) -> c_12(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), isZero^#(x), minus^#(x, s(0())), times^#(y, x)) , if^#(false(), x, y, z) -> c_14(facIter^#(x, z)) , factorial^#(x) -> c_15(facIter^#(x, s(0()))) } Weak Trs: { plus(0(), x) -> x , plus(s(x), y) -> s(plus(x, y)) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , p(0()) -> 0() , p(s(x)) -> x , minus(x, 0()) -> x , minus(x, s(y)) -> p(minus(x, y)) , minus(0(), x) -> 0() , isZero(0()) -> true() , isZero(s(x)) -> false() , facIter(x, y) -> if(isZero(x), minus(x, s(0())), y, times(y, x)) , if(true(), x, y, z) -> y , if(false(), x, y, z) -> facIter(x, z) , factorial(x) -> facIter(x, s(0())) } Obligation: innermost runtime complexity Answer: MAYBE Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { minus^#(x, s(y)) -> c_8(p^#(minus(x, y)), minus^#(x, y)) , facIter^#(x, y) -> c_12(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), isZero^#(x), minus^#(x, s(0())), times^#(y, x)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { plus^#(s(x), y) -> c_1(plus^#(x, y)) , times^#(s(x), y) -> c_2(plus^#(y, times(x, y)), times^#(x, y)) , minus^#(x, s(y)) -> c_3(minus^#(x, y)) , facIter^#(x, y) -> c_4(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), minus^#(x, s(0())), times^#(y, x)) , if^#(false(), x, y, z) -> c_5(facIter^#(x, z)) , factorial^#(x) -> c_6(facIter^#(x, s(0()))) } Weak Trs: { plus(0(), x) -> x , plus(s(x), y) -> s(plus(x, y)) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , p(0()) -> 0() , p(s(x)) -> x , minus(x, 0()) -> x , minus(x, s(y)) -> p(minus(x, y)) , minus(0(), x) -> 0() , isZero(0()) -> true() , isZero(s(x)) -> false() , facIter(x, y) -> if(isZero(x), minus(x, s(0())), y, times(y, x)) , if(true(), x, y, z) -> y , if(false(), x, y, z) -> facIter(x, z) , factorial(x) -> facIter(x, s(0())) } Obligation: innermost runtime complexity Answer: MAYBE We replace rewrite rules by usable rules: Weak Usable Rules: { plus(0(), x) -> x , plus(s(x), y) -> s(plus(x, y)) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , p(0()) -> 0() , p(s(x)) -> x , minus(x, 0()) -> x , minus(x, s(y)) -> p(minus(x, y)) , minus(0(), x) -> 0() , isZero(0()) -> true() , isZero(s(x)) -> false() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { plus^#(s(x), y) -> c_1(plus^#(x, y)) , times^#(s(x), y) -> c_2(plus^#(y, times(x, y)), times^#(x, y)) , minus^#(x, s(y)) -> c_3(minus^#(x, y)) , facIter^#(x, y) -> c_4(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), minus^#(x, s(0())), times^#(y, x)) , if^#(false(), x, y, z) -> c_5(facIter^#(x, z)) , factorial^#(x) -> c_6(facIter^#(x, s(0()))) } Weak Trs: { plus(0(), x) -> x , plus(s(x), y) -> s(plus(x, y)) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , p(0()) -> 0() , p(s(x)) -> x , minus(x, 0()) -> x , minus(x, s(y)) -> p(minus(x, y)) , minus(0(), x) -> 0() , isZero(0()) -> true() , isZero(s(x)) -> false() } Obligation: innermost runtime complexity Answer: MAYBE Consider the dependency graph 1: plus^#(s(x), y) -> c_1(plus^#(x, y)) -->_1 plus^#(s(x), y) -> c_1(plus^#(x, y)) :1 2: times^#(s(x), y) -> c_2(plus^#(y, times(x, y)), times^#(x, y)) -->_2 times^#(s(x), y) -> c_2(plus^#(y, times(x, y)), times^#(x, y)) :2 -->_1 plus^#(s(x), y) -> c_1(plus^#(x, y)) :1 3: minus^#(x, s(y)) -> c_3(minus^#(x, y)) -->_1 minus^#(x, s(y)) -> c_3(minus^#(x, y)) :3 4: facIter^#(x, y) -> c_4(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), minus^#(x, s(0())), times^#(y, x)) -->_1 if^#(false(), x, y, z) -> c_5(facIter^#(x, z)) :5 -->_2 minus^#(x, s(y)) -> c_3(minus^#(x, y)) :3 -->_3 times^#(s(x), y) -> c_2(plus^#(y, times(x, y)), times^#(x, y)) :2 5: if^#(false(), x, y, z) -> c_5(facIter^#(x, z)) -->_1 facIter^#(x, y) -> c_4(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), minus^#(x, s(0())), times^#(y, x)) :4 6: factorial^#(x) -> c_6(facIter^#(x, s(0()))) -->_1 facIter^#(x, y) -> c_4(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), minus^#(x, s(0())), times^#(y, x)) :4 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). { factorial^#(x) -> c_6(facIter^#(x, s(0()))) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { plus^#(s(x), y) -> c_1(plus^#(x, y)) , times^#(s(x), y) -> c_2(plus^#(y, times(x, y)), times^#(x, y)) , minus^#(x, s(y)) -> c_3(minus^#(x, y)) , facIter^#(x, y) -> c_4(if^#(isZero(x), minus(x, s(0())), y, times(y, x)), minus^#(x, s(0())), times^#(y, x)) , if^#(false(), x, y, z) -> c_5(facIter^#(x, z)) } Weak Trs: { plus(0(), x) -> x , plus(s(x), y) -> s(plus(x, y)) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , p(0()) -> 0() , p(s(x)) -> x , minus(x, 0()) -> x , minus(x, s(y)) -> p(minus(x, y)) , minus(0(), x) -> 0() , isZero(0()) -> true() , isZero(s(x)) -> false() } Obligation: innermost runtime complexity Answer: MAYBE None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'matrices' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'matrix interpretation of dimension 4' failed due to the following reason: The input cannot be shown compatible 2) 'matrix interpretation of dimension 3' failed due to the following reason: The input cannot be shown compatible 3) 'matrix interpretation of dimension 3' failed due to the following reason: The input cannot be shown compatible 4) 'matrix interpretation of dimension 2' failed due to the following reason: The input cannot be shown compatible 5) 'matrix interpretation of dimension 2' failed due to the following reason: The input cannot be shown compatible 6) 'matrix interpretation of dimension 1' failed due to the following reason: The input cannot be shown compatible 2) 'empty' failed due to the following reason: Empty strict component of the problem is NOT empty. Arrrr..