MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { nonZero(0()) -> false() , nonZero(s(x)) -> true() , p(0()) -> 0() , p(s(x)) -> x , id_inc(x) -> x , id_inc(x) -> s(x) , random(x) -> rand(x, 0()) , rand(x, y) -> if(nonZero(x), x, y) , if(false(), x, y) -> y , if(true(), x, y) -> rand(p(x), id_inc(y)) } Obligation: innermost runtime complexity Answer: MAYBE We add following weak dependency pairs: Strict DPs: { nonZero^#(0()) -> c_1() , nonZero^#(s(x)) -> c_2() , p^#(0()) -> c_3() , p^#(s(x)) -> c_4() , id_inc^#(x) -> c_5() , id_inc^#(x) -> c_6() , random^#(x) -> c_7(rand^#(x, 0())) , rand^#(x, y) -> c_8(if^#(nonZero(x), x, y)) , if^#(false(), x, y) -> c_9() , if^#(true(), x, y) -> c_10(rand^#(p(x), id_inc(y))) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { nonZero^#(0()) -> c_1() , nonZero^#(s(x)) -> c_2() , p^#(0()) -> c_3() , p^#(s(x)) -> c_4() , id_inc^#(x) -> c_5() , id_inc^#(x) -> c_6() , random^#(x) -> c_7(rand^#(x, 0())) , rand^#(x, y) -> c_8(if^#(nonZero(x), x, y)) , if^#(false(), x, y) -> c_9() , if^#(true(), x, y) -> c_10(rand^#(p(x), id_inc(y))) } Strict Trs: { nonZero(0()) -> false() , nonZero(s(x)) -> true() , p(0()) -> 0() , p(s(x)) -> x , id_inc(x) -> x , id_inc(x) -> s(x) , random(x) -> rand(x, 0()) , rand(x, y) -> if(nonZero(x), x, y) , if(false(), x, y) -> y , if(true(), x, y) -> rand(p(x), id_inc(y)) } Obligation: innermost runtime complexity Answer: MAYBE We replace rewrite rules by usable rules: Strict Usable Rules: { nonZero(0()) -> false() , nonZero(s(x)) -> true() , p(0()) -> 0() , p(s(x)) -> x , id_inc(x) -> x , id_inc(x) -> s(x) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { nonZero^#(0()) -> c_1() , nonZero^#(s(x)) -> c_2() , p^#(0()) -> c_3() , p^#(s(x)) -> c_4() , id_inc^#(x) -> c_5() , id_inc^#(x) -> c_6() , random^#(x) -> c_7(rand^#(x, 0())) , rand^#(x, y) -> c_8(if^#(nonZero(x), x, y)) , if^#(false(), x, y) -> c_9() , if^#(true(), x, y) -> c_10(rand^#(p(x), id_inc(y))) } Strict Trs: { nonZero(0()) -> false() , nonZero(s(x)) -> true() , p(0()) -> 0() , p(s(x)) -> x , id_inc(x) -> x , id_inc(x) -> s(x) } Obligation: innermost runtime complexity Answer: MAYBE The weightgap principle applies (using the following constant growth matrix-interpretation) The following argument positions are usable: Uargs(c_7) = {1}, Uargs(rand^#) = {1, 2}, Uargs(c_8) = {1}, Uargs(if^#) = {1}, Uargs(c_10) = {1} TcT has computed following constructor-restricted matrix interpretation. [nonZero](x1) = [1] [0] = [2] [false] = [0] [s](x1) = [1] x1 + [0] [true] = [0] [p](x1) = [1] x1 + [2] [id_inc](x1) = [1] x1 + [2] [nonZero^#](x1) = [2] x1 + [2] [c_1] = [1] [c_2] = [1] [p^#](x1) = [1] x1 + [2] [c_3] = [1] [c_4] = [1] [id_inc^#](x1) = [1] [c_5] = [2] [c_6] = [2] [random^#](x1) = [1] x1 + [1] [c_7](x1) = [1] x1 + [1] [rand^#](x1, x2) = [1] x1 + [2] x2 + [1] [c_8](x1) = [1] x1 + [2] [if^#](x1, x2, x3) = [1] x1 + [1] x2 + [2] x3 + [1] [c_9] = [0] [c_10](x1) = [1] x1 + [0] This order satisfies following ordering constraints: [nonZero(0())] = [1] > [0] = [false()] [nonZero(s(x))] = [1] > [0] = [true()] [p(0())] = [4] > [2] = [0()] [p(s(x))] = [1] x + [2] > [1] x + [0] = [x] [id_inc(x)] = [1] x + [2] > [1] x + [0] = [x] [id_inc(x)] = [1] x + [2] > [1] x + [0] = [s(x)] Further, it can be verified that all rules not oriented are covered by the weightgap condition. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { id_inc^#(x) -> c_5() , id_inc^#(x) -> c_6() , random^#(x) -> c_7(rand^#(x, 0())) , rand^#(x, y) -> c_8(if^#(nonZero(x), x, y)) , if^#(true(), x, y) -> c_10(rand^#(p(x), id_inc(y))) } Weak DPs: { nonZero^#(0()) -> c_1() , nonZero^#(s(x)) -> c_2() , p^#(0()) -> c_3() , p^#(s(x)) -> c_4() , if^#(false(), x, y) -> c_9() } Weak Trs: { nonZero(0()) -> false() , nonZero(s(x)) -> true() , p(0()) -> 0() , p(s(x)) -> x , id_inc(x) -> x , id_inc(x) -> s(x) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {1,2} by applications of Pre({1,2}) = {}. Here rules are labeled as follows: DPs: { 1: id_inc^#(x) -> c_5() , 2: id_inc^#(x) -> c_6() , 3: random^#(x) -> c_7(rand^#(x, 0())) , 4: rand^#(x, y) -> c_8(if^#(nonZero(x), x, y)) , 5: if^#(true(), x, y) -> c_10(rand^#(p(x), id_inc(y))) , 6: nonZero^#(0()) -> c_1() , 7: nonZero^#(s(x)) -> c_2() , 8: p^#(0()) -> c_3() , 9: p^#(s(x)) -> c_4() , 10: if^#(false(), x, y) -> c_9() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { random^#(x) -> c_7(rand^#(x, 0())) , rand^#(x, y) -> c_8(if^#(nonZero(x), x, y)) , if^#(true(), x, y) -> c_10(rand^#(p(x), id_inc(y))) } Weak DPs: { nonZero^#(0()) -> c_1() , nonZero^#(s(x)) -> c_2() , p^#(0()) -> c_3() , p^#(s(x)) -> c_4() , id_inc^#(x) -> c_5() , id_inc^#(x) -> c_6() , if^#(false(), x, y) -> c_9() } Weak Trs: { nonZero(0()) -> false() , nonZero(s(x)) -> true() , p(0()) -> 0() , p(s(x)) -> x , id_inc(x) -> x , id_inc(x) -> s(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. { nonZero^#(0()) -> c_1() , nonZero^#(s(x)) -> c_2() , p^#(0()) -> c_3() , p^#(s(x)) -> c_4() , id_inc^#(x) -> c_5() , id_inc^#(x) -> c_6() , if^#(false(), x, y) -> c_9() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { random^#(x) -> c_7(rand^#(x, 0())) , rand^#(x, y) -> c_8(if^#(nonZero(x), x, y)) , if^#(true(), x, y) -> c_10(rand^#(p(x), id_inc(y))) } Weak Trs: { nonZero(0()) -> false() , nonZero(s(x)) -> true() , p(0()) -> 0() , p(s(x)) -> x , id_inc(x) -> x , id_inc(x) -> s(x) } Obligation: innermost runtime complexity Answer: MAYBE Consider the dependency graph 1: random^#(x) -> c_7(rand^#(x, 0())) -->_1 rand^#(x, y) -> c_8(if^#(nonZero(x), x, y)) :2 2: rand^#(x, y) -> c_8(if^#(nonZero(x), x, y)) -->_1 if^#(true(), x, y) -> c_10(rand^#(p(x), id_inc(y))) :3 3: if^#(true(), x, y) -> c_10(rand^#(p(x), id_inc(y))) -->_1 rand^#(x, y) -> c_8(if^#(nonZero(x), 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). { random^#(x) -> c_7(rand^#(x, 0())) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { rand^#(x, y) -> c_8(if^#(nonZero(x), x, y)) , if^#(true(), x, y) -> c_10(rand^#(p(x), id_inc(y))) } Weak Trs: { nonZero(0()) -> false() , nonZero(s(x)) -> true() , p(0()) -> 0() , p(s(x)) -> x , id_inc(x) -> x , id_inc(x) -> s(x) } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..