MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { lt(x, 0()) -> false() , lt(0(), s(x)) -> true() , lt(s(x), s(y)) -> lt(x, y) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , plus(0(), y) -> y , plus(s(x), y) -> s(plus(x, y)) , fac(x) -> loop(x, s(0()), s(0())) , loop(x, c, y) -> if(lt(x, c), x, c, y) , if(true(), x, c, y) -> y , if(false(), x, c, y) -> loop(x, s(c), times(y, s(c))) } Obligation: runtime complexity Answer: MAYBE None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'WithProblem (timeout of 60 seconds)' failed due to the following reason: Computation stopped due to timeout after 60.0 seconds. 2) 'Best' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'WithProblem (timeout of 30 seconds) (timeout of 60 seconds)' failed due to the following reason: The weightgap principle applies (using the following nonconstant growth matrix-interpretation) The following argument positions are usable: Uargs(s) = {1}, Uargs(times) = {1}, Uargs(plus) = {2}, Uargs(loop) = {3}, Uargs(if) = {1, 4} TcT has computed the following matrix interpretation satisfying not(EDA) and not(IDA(1)). [lt](x1, x2) = [0] [0] = [0] [s](x1) = [1] x1 + [0] [true] = [0] [false] = [1] [times](x1, x2) = [1] x1 + [0] [plus](x1, x2) = [1] x2 + [0] [fac](x1) = [1] x1 + [7] [loop](x1, x2, x3) = [1] x3 + [0] [if](x1, x2, x3, x4) = [1] x1 + [1] x4 + [0] The following symbols are considered usable {lt, times, plus, fac, loop, if} The order satisfies the following ordering constraints: [lt(x, 0())] = [0] ? [1] = [false()] [lt(0(), s(x))] = [0] >= [0] = [true()] [lt(s(x), s(y))] = [0] >= [0] = [lt(x, y)] [times(0(), y)] = [0] >= [0] = [0()] [times(s(x), y)] = [1] x + [0] >= [1] x + [0] = [plus(y, times(x, y))] [plus(0(), y)] = [1] y + [0] >= [1] y + [0] = [y] [plus(s(x), y)] = [1] y + [0] >= [1] y + [0] = [s(plus(x, y))] [fac(x)] = [1] x + [7] > [0] = [loop(x, s(0()), s(0()))] [loop(x, c, y)] = [1] y + [0] >= [1] y + [0] = [if(lt(x, c), x, c, y)] [if(true(), x, c, y)] = [1] y + [0] >= [1] y + [0] = [y] [if(false(), x, c, y)] = [1] y + [1] > [1] y + [0] = [loop(x, s(c), times(y, s(c)))] 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 Trs: { lt(x, 0()) -> false() , lt(0(), s(x)) -> true() , lt(s(x), s(y)) -> lt(x, y) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , plus(0(), y) -> y , plus(s(x), y) -> s(plus(x, y)) , loop(x, c, y) -> if(lt(x, c), x, c, y) , if(true(), x, c, y) -> y } Weak Trs: { fac(x) -> loop(x, s(0()), s(0())) , if(false(), x, c, y) -> loop(x, s(c), times(y, s(c))) } Obligation: runtime complexity Answer: MAYBE The weightgap principle applies (using the following nonconstant growth matrix-interpretation) The following argument positions are usable: Uargs(s) = {1}, Uargs(times) = {1}, Uargs(plus) = {2}, Uargs(loop) = {3}, Uargs(if) = {1, 4} TcT has computed the following matrix interpretation satisfying not(EDA) and not(IDA(1)). [lt](x1, x2) = [0] [0] = [0] [s](x1) = [1] x1 + [0] [true] = [1] [false] = [0] [times](x1, x2) = [1] x1 + [0] [plus](x1, x2) = [1] x2 + [0] [fac](x1) = [1] x1 + [7] [loop](x1, x2, x3) = [1] x1 + [1] x3 + [0] [if](x1, x2, x3, x4) = [1] x1 + [1] x2 + [1] x4 + [0] The following symbols are considered usable {lt, times, plus, fac, loop, if} The order satisfies the following ordering constraints: [lt(x, 0())] = [0] >= [0] = [false()] [lt(0(), s(x))] = [0] ? [1] = [true()] [lt(s(x), s(y))] = [0] >= [0] = [lt(x, y)] [times(0(), y)] = [0] >= [0] = [0()] [times(s(x), y)] = [1] x + [0] >= [1] x + [0] = [plus(y, times(x, y))] [plus(0(), y)] = [1] y + [0] >= [1] y + [0] = [y] [plus(s(x), y)] = [1] y + [0] >= [1] y + [0] = [s(plus(x, y))] [fac(x)] = [1] x + [7] > [1] x + [0] = [loop(x, s(0()), s(0()))] [loop(x, c, y)] = [1] x + [1] y + [0] >= [1] x + [1] y + [0] = [if(lt(x, c), x, c, y)] [if(true(), x, c, y)] = [1] x + [1] y + [1] > [1] y + [0] = [y] [if(false(), x, c, y)] = [1] x + [1] y + [0] >= [1] x + [1] y + [0] = [loop(x, s(c), times(y, s(c)))] 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 Trs: { lt(x, 0()) -> false() , lt(0(), s(x)) -> true() , lt(s(x), s(y)) -> lt(x, y) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , plus(0(), y) -> y , plus(s(x), y) -> s(plus(x, y)) , loop(x, c, y) -> if(lt(x, c), x, c, y) } Weak Trs: { fac(x) -> loop(x, s(0()), s(0())) , if(true(), x, c, y) -> y , if(false(), x, c, y) -> loop(x, s(c), times(y, s(c))) } Obligation: runtime complexity Answer: MAYBE The weightgap principle applies (using the following nonconstant growth matrix-interpretation) The following argument positions are usable: Uargs(s) = {1}, Uargs(times) = {1}, Uargs(plus) = {2}, Uargs(loop) = {3}, Uargs(if) = {1, 4} TcT has computed the following matrix interpretation satisfying not(EDA) and not(IDA(1)). [lt](x1, x2) = [7] [0] = [4] [s](x1) = [1] x1 + [0] [true] = [6] [false] = [7] [times](x1, x2) = [1] x1 + [0] [plus](x1, x2) = [1] x2 + [7] [fac](x1) = [1] x1 + [7] [loop](x1, x2, x3) = [1] x1 + [1] x3 + [1] [if](x1, x2, x3, x4) = [1] x1 + [1] x2 + [1] x4 + [0] The following symbols are considered usable {lt, times, plus, fac, loop, if} The order satisfies the following ordering constraints: [lt(x, 0())] = [7] >= [7] = [false()] [lt(0(), s(x))] = [7] > [6] = [true()] [lt(s(x), s(y))] = [7] >= [7] = [lt(x, y)] [times(0(), y)] = [4] >= [4] = [0()] [times(s(x), y)] = [1] x + [0] ? [1] x + [7] = [plus(y, times(x, y))] [plus(0(), y)] = [1] y + [7] > [1] y + [0] = [y] [plus(s(x), y)] = [1] y + [7] >= [1] y + [7] = [s(plus(x, y))] [fac(x)] = [1] x + [7] > [1] x + [5] = [loop(x, s(0()), s(0()))] [loop(x, c, y)] = [1] x + [1] y + [1] ? [1] x + [1] y + [7] = [if(lt(x, c), x, c, y)] [if(true(), x, c, y)] = [1] x + [1] y + [6] > [1] y + [0] = [y] [if(false(), x, c, y)] = [1] x + [1] y + [7] > [1] x + [1] y + [1] = [loop(x, s(c), times(y, s(c)))] 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 Trs: { lt(x, 0()) -> false() , lt(s(x), s(y)) -> lt(x, y) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , plus(s(x), y) -> s(plus(x, y)) , loop(x, c, y) -> if(lt(x, c), x, c, y) } Weak Trs: { lt(0(), s(x)) -> true() , plus(0(), y) -> y , fac(x) -> loop(x, s(0()), s(0())) , if(true(), x, c, y) -> y , if(false(), x, c, y) -> loop(x, s(c), times(y, s(c))) } Obligation: runtime complexity Answer: MAYBE The weightgap principle applies (using the following nonconstant growth matrix-interpretation) The following argument positions are usable: Uargs(s) = {1}, Uargs(times) = {1}, Uargs(plus) = {2}, Uargs(loop) = {3}, Uargs(if) = {1, 4} TcT has computed the following matrix interpretation satisfying not(EDA) and not(IDA(1)). [lt](x1, x2) = [4] [0] = [0] [s](x1) = [1] x1 + [0] [true] = [3] [false] = [0] [times](x1, x2) = [1] x1 + [0] [plus](x1, x2) = [1] x2 + [4] [fac](x1) = [1] x1 + [7] [loop](x1, x2, x3) = [1] x3 + [0] [if](x1, x2, x3, x4) = [1] x1 + [1] x4 + [0] The following symbols are considered usable {lt, times, plus, fac, loop, if} The order satisfies the following ordering constraints: [lt(x, 0())] = [4] > [0] = [false()] [lt(0(), s(x))] = [4] > [3] = [true()] [lt(s(x), s(y))] = [4] >= [4] = [lt(x, y)] [times(0(), y)] = [0] >= [0] = [0()] [times(s(x), y)] = [1] x + [0] ? [1] x + [4] = [plus(y, times(x, y))] [plus(0(), y)] = [1] y + [4] > [1] y + [0] = [y] [plus(s(x), y)] = [1] y + [4] >= [1] y + [4] = [s(plus(x, y))] [fac(x)] = [1] x + [7] > [0] = [loop(x, s(0()), s(0()))] [loop(x, c, y)] = [1] y + [0] ? [1] y + [4] = [if(lt(x, c), x, c, y)] [if(true(), x, c, y)] = [1] y + [3] > [1] y + [0] = [y] [if(false(), x, c, y)] = [1] y + [0] >= [1] y + [0] = [loop(x, s(c), times(y, s(c)))] 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 Trs: { lt(s(x), s(y)) -> lt(x, y) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , plus(s(x), y) -> s(plus(x, y)) , loop(x, c, y) -> if(lt(x, c), x, c, y) } Weak Trs: { lt(x, 0()) -> false() , lt(0(), s(x)) -> true() , plus(0(), y) -> y , fac(x) -> loop(x, s(0()), s(0())) , if(true(), x, c, y) -> y , if(false(), x, c, y) -> loop(x, s(c), times(y, s(c))) } Obligation: runtime complexity Answer: MAYBE The weightgap principle applies (using the following nonconstant growth matrix-interpretation) The following argument positions are usable: Uargs(s) = {1}, Uargs(times) = {1}, Uargs(plus) = {2}, Uargs(loop) = {3}, Uargs(if) = {1, 4} TcT has computed the following matrix interpretation satisfying not(EDA) and not(IDA(1)). [lt](x1, x2) = [0] [0] = [0] [s](x1) = [1] x1 + [4] [true] = [0] [false] = [0] [times](x1, x2) = [1] x1 + [0] [plus](x1, x2) = [1] x2 + [0] [fac](x1) = [1] x1 + [7] [loop](x1, x2, x3) = [1] x1 + [1] x3 + [0] [if](x1, x2, x3, x4) = [1] x1 + [1] x2 + [1] x4 + [0] The following symbols are considered usable {lt, times, plus, fac, loop, if} The order satisfies the following ordering constraints: [lt(x, 0())] = [0] >= [0] = [false()] [lt(0(), s(x))] = [0] >= [0] = [true()] [lt(s(x), s(y))] = [0] >= [0] = [lt(x, y)] [times(0(), y)] = [0] >= [0] = [0()] [times(s(x), y)] = [1] x + [4] > [1] x + [0] = [plus(y, times(x, y))] [plus(0(), y)] = [1] y + [0] >= [1] y + [0] = [y] [plus(s(x), y)] = [1] y + [0] ? [1] y + [4] = [s(plus(x, y))] [fac(x)] = [1] x + [7] > [1] x + [4] = [loop(x, s(0()), s(0()))] [loop(x, c, y)] = [1] x + [1] y + [0] >= [1] x + [1] y + [0] = [if(lt(x, c), x, c, y)] [if(true(), x, c, y)] = [1] x + [1] y + [0] >= [1] y + [0] = [y] [if(false(), x, c, y)] = [1] x + [1] y + [0] >= [1] x + [1] y + [0] = [loop(x, s(c), times(y, s(c)))] 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 Trs: { lt(s(x), s(y)) -> lt(x, y) , times(0(), y) -> 0() , plus(s(x), y) -> s(plus(x, y)) , loop(x, c, y) -> if(lt(x, c), x, c, y) } Weak Trs: { lt(x, 0()) -> false() , lt(0(), s(x)) -> true() , times(s(x), y) -> plus(y, times(x, y)) , plus(0(), y) -> y , fac(x) -> loop(x, s(0()), s(0())) , if(true(), x, c, y) -> y , if(false(), x, c, y) -> loop(x, s(c), times(y, s(c))) } Obligation: runtime complexity Answer: MAYBE The weightgap principle applies (using the following nonconstant growth matrix-interpretation) The following argument positions are usable: Uargs(s) = {1}, Uargs(times) = {1}, Uargs(plus) = {2}, Uargs(loop) = {3}, Uargs(if) = {1, 4} TcT has computed the following matrix interpretation satisfying not(EDA) and not(IDA(1)). [lt](x1, x2) = [4] [0] = [0] [s](x1) = [1] x1 + [0] [true] = [4] [false] = [1] [times](x1, x2) = [1] x1 + [1] [plus](x1, x2) = [1] x2 + [0] [fac](x1) = [1] x1 + [7] [loop](x1, x2, x3) = [1] x1 + [1] x3 + [0] [if](x1, x2, x3, x4) = [1] x1 + [1] x2 + [1] x4 + [0] The following symbols are considered usable {lt, times, plus, fac, loop, if} The order satisfies the following ordering constraints: [lt(x, 0())] = [4] > [1] = [false()] [lt(0(), s(x))] = [4] >= [4] = [true()] [lt(s(x), s(y))] = [4] >= [4] = [lt(x, y)] [times(0(), y)] = [1] > [0] = [0()] [times(s(x), y)] = [1] x + [1] >= [1] x + [1] = [plus(y, times(x, y))] [plus(0(), y)] = [1] y + [0] >= [1] y + [0] = [y] [plus(s(x), y)] = [1] y + [0] >= [1] y + [0] = [s(plus(x, y))] [fac(x)] = [1] x + [7] > [1] x + [0] = [loop(x, s(0()), s(0()))] [loop(x, c, y)] = [1] x + [1] y + [0] ? [1] x + [1] y + [4] = [if(lt(x, c), x, c, y)] [if(true(), x, c, y)] = [1] x + [1] y + [4] > [1] y + [0] = [y] [if(false(), x, c, y)] = [1] x + [1] y + [1] >= [1] x + [1] y + [1] = [loop(x, s(c), times(y, s(c)))] 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 Trs: { lt(s(x), s(y)) -> lt(x, y) , plus(s(x), y) -> s(plus(x, y)) , loop(x, c, y) -> if(lt(x, c), x, c, y) } Weak Trs: { lt(x, 0()) -> false() , lt(0(), s(x)) -> true() , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , plus(0(), y) -> y , fac(x) -> loop(x, s(0()), s(0())) , if(true(), x, c, y) -> y , if(false(), x, c, y) -> loop(x, s(c), times(y, s(c))) } Obligation: runtime complexity Answer: MAYBE None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'empty' failed due to the following reason: Empty strict component of the problem is NOT empty. 2) 'WithProblem' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'empty' failed due to the following reason: Empty strict component of the problem is NOT empty. 2) 'Fastest' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'WithProblem' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'empty' failed due to the following reason: Empty strict component of the problem is NOT empty. 2) 'WithProblem' failed due to the following reason: Empty strict component of the problem is NOT empty. 2) 'WithProblem' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'empty' failed due to the following reason: Empty strict component of the problem is NOT empty. 2) 'WithProblem' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'empty' failed due to the following reason: Empty strict component of the problem is NOT empty. 2) 'WithProblem' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'empty' failed due to the following reason: Empty strict component of the problem is NOT empty. 2) 'WithProblem' failed due to the following reason: Empty strict component of the problem is NOT empty. 2) 'Best' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'bsearch-popstar (timeout of 60 seconds)' failed due to the following reason: The processor is inapplicable, reason: Processor only applicable for innermost runtime complexity analysis 2) 'Polynomial Path Order (PS) (timeout of 60 seconds)' failed due to the following reason: The processor is inapplicable, reason: Processor only applicable for innermost runtime complexity analysis 3) 'Fastest (timeout of 5 seconds) (timeout of 60 seconds)' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'Bounds with perSymbol-enrichment and initial automaton 'match'' failed due to the following reason: match-boundness of the problem could not be verified. 2) 'Bounds with minimal-enrichment and initial automaton 'match'' failed due to the following reason: match-boundness of the problem could not be verified. 3) 'Innermost Weak Dependency Pairs (timeout of 60 seconds)' failed due to the following reason: We add the following weak dependency pairs: Strict DPs: { lt^#(x, 0()) -> c_1() , lt^#(0(), s(x)) -> c_2() , lt^#(s(x), s(y)) -> c_3(lt^#(x, y)) , times^#(0(), y) -> c_4() , times^#(s(x), y) -> c_5(plus^#(y, times(x, y))) , plus^#(0(), y) -> c_6(y) , plus^#(s(x), y) -> c_7(plus^#(x, y)) , fac^#(x) -> c_8(loop^#(x, s(0()), s(0()))) , loop^#(x, c, y) -> c_9(if^#(lt(x, c), x, c, y)) , if^#(true(), x, c, y) -> c_10(y) , if^#(false(), x, c, y) -> c_11(loop^#(x, s(c), times(y, s(c)))) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { lt^#(x, 0()) -> c_1() , lt^#(0(), s(x)) -> c_2() , lt^#(s(x), s(y)) -> c_3(lt^#(x, y)) , times^#(0(), y) -> c_4() , times^#(s(x), y) -> c_5(plus^#(y, times(x, y))) , plus^#(0(), y) -> c_6(y) , plus^#(s(x), y) -> c_7(plus^#(x, y)) , fac^#(x) -> c_8(loop^#(x, s(0()), s(0()))) , loop^#(x, c, y) -> c_9(if^#(lt(x, c), x, c, y)) , if^#(true(), x, c, y) -> c_10(y) , if^#(false(), x, c, y) -> c_11(loop^#(x, s(c), times(y, s(c)))) } Strict Trs: { lt(x, 0()) -> false() , lt(0(), s(x)) -> true() , lt(s(x), s(y)) -> lt(x, y) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , plus(0(), y) -> y , plus(s(x), y) -> s(plus(x, y)) , fac(x) -> loop(x, s(0()), s(0())) , loop(x, c, y) -> if(lt(x, c), x, c, y) , if(true(), x, c, y) -> y , if(false(), x, c, y) -> loop(x, s(c), times(y, s(c))) } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {1,2,4} by applications of Pre({1,2,4}) = {3,6,10}. Here rules are labeled as follows: DPs: { 1: lt^#(x, 0()) -> c_1() , 2: lt^#(0(), s(x)) -> c_2() , 3: lt^#(s(x), s(y)) -> c_3(lt^#(x, y)) , 4: times^#(0(), y) -> c_4() , 5: times^#(s(x), y) -> c_5(plus^#(y, times(x, y))) , 6: plus^#(0(), y) -> c_6(y) , 7: plus^#(s(x), y) -> c_7(plus^#(x, y)) , 8: fac^#(x) -> c_8(loop^#(x, s(0()), s(0()))) , 9: loop^#(x, c, y) -> c_9(if^#(lt(x, c), x, c, y)) , 10: if^#(true(), x, c, y) -> c_10(y) , 11: if^#(false(), x, c, y) -> c_11(loop^#(x, s(c), times(y, s(c)))) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { lt^#(s(x), s(y)) -> c_3(lt^#(x, y)) , times^#(s(x), y) -> c_5(plus^#(y, times(x, y))) , plus^#(0(), y) -> c_6(y) , plus^#(s(x), y) -> c_7(plus^#(x, y)) , fac^#(x) -> c_8(loop^#(x, s(0()), s(0()))) , loop^#(x, c, y) -> c_9(if^#(lt(x, c), x, c, y)) , if^#(true(), x, c, y) -> c_10(y) , if^#(false(), x, c, y) -> c_11(loop^#(x, s(c), times(y, s(c)))) } Strict Trs: { lt(x, 0()) -> false() , lt(0(), s(x)) -> true() , lt(s(x), s(y)) -> lt(x, y) , times(0(), y) -> 0() , times(s(x), y) -> plus(y, times(x, y)) , plus(0(), y) -> y , plus(s(x), y) -> s(plus(x, y)) , fac(x) -> loop(x, s(0()), s(0())) , loop(x, c, y) -> if(lt(x, c), x, c, y) , if(true(), x, c, y) -> y , if(false(), x, c, y) -> loop(x, s(c), times(y, s(c))) } Weak DPs: { lt^#(x, 0()) -> c_1() , lt^#(0(), s(x)) -> c_2() , times^#(0(), y) -> c_4() } Obligation: runtime complexity Answer: MAYBE Empty strict component of the problem is NOT empty. Arrrr..