15.04/10.73 WORST_CASE(Omega(n^2), O(n^2)) 15.04/10.74 proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat 15.04/10.74 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 15.04/10.74 15.04/10.74 15.04/10.74 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^2, max(2, 2 + 12 * Arg_0) * nat(3 * Arg_1) + nat(Arg_2) + nat(Arg_0) + nat(3 * Arg_2) + nat(4 * Arg_0) + max(8, 8 + 6 * Arg_0) + max(1, 1 + 6 * Arg_0) * nat(2 * Arg_1)). 15.04/10.74 15.04/10.74 (0) CpxIntTrs 15.04/10.74 (1) Koat2 Proof [FINISHED, 9035 ms] 15.04/10.74 (2) BOUNDS(1, max(2, 2 + 12 * Arg_0) * nat(3 * Arg_1) + nat(Arg_2) + nat(Arg_0) + nat(3 * Arg_2) + nat(4 * Arg_0) + max(8, 8 + 6 * Arg_0) + max(1, 1 + 6 * Arg_0) * nat(2 * Arg_1)) 15.04/10.74 (3) Loat Proof [FINISHED, 1122 ms] 15.04/10.74 (4) BOUNDS(n^2, INF) 15.04/10.74 15.04/10.74 15.04/10.74 ---------------------------------------- 15.04/10.74 15.04/10.74 (0) 15.04/10.74 Obligation: 15.04/10.74 Complexity Int TRS consisting of the following rules: 15.04/10.74 evalnestedLoopstart(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopentryin(A, B, C, D, E, F, G, H)) :|: TRUE 15.04/10.74 evalnestedLoopentryin(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopbb9in(A, B, C, 0, E, F, G, H)) :|: A >= 0 && B >= 0 && C >= 0 15.04/10.74 evalnestedLoopentryin(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopreturnin(A, B, C, D, E, F, G, H)) :|: 0 >= A + 1 15.04/10.74 evalnestedLoopentryin(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopreturnin(A, B, C, D, E, F, G, H)) :|: 0 >= B + 1 15.04/10.74 evalnestedLoopentryin(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopreturnin(A, B, C, D, E, F, G, H)) :|: 0 >= C + 1 15.04/10.74 evalnestedLoopbb9in(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopbb7in(A, B, C, D, 0, D, G, H)) :|: A >= D + 1 15.04/10.74 evalnestedLoopbb9in(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopreturnin(A, B, C, D, E, F, G, H)) :|: D >= A 15.04/10.74 evalnestedLoopbb7in(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopbb4in(A, B, C, D, E, F, G, H)) :|: B >= E + 1 15.04/10.74 evalnestedLoopbb7in(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopbb8in(A, B, C, D, E, F, G, H)) :|: E >= B 15.04/10.74 evalnestedLoopbb4in(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopbb6in(A, B, C, D, E, F, E + 1, F)) :|: TRUE 15.04/10.74 evalnestedLoopbb6in(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopbb5in(A, B, C, D, E, F, G, H)) :|: C >= H + 1 15.04/10.74 evalnestedLoopbb6in(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopbb7in(A, B, C, D, G, H, G, H)) :|: H >= C 15.04/10.74 evalnestedLoopbb5in(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopbb6in(A, B, C, D, E, F, G, H + 1)) :|: TRUE 15.04/10.74 evalnestedLoopbb8in(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopbb9in(A, B, C, F + 1, E, F, G, H)) :|: TRUE 15.04/10.74 evalnestedLoopreturnin(A, B, C, D, E, F, G, H) -> Com_1(evalnestedLoopstop(A, B, C, D, E, F, G, H)) :|: TRUE 15.04/10.74 15.04/10.74 The start-symbols are:[evalnestedLoopstart_8] 15.04/10.74 15.04/10.74 15.04/10.74 ---------------------------------------- 15.04/10.74 15.04/10.74 (1) Koat2 Proof (FINISHED) 15.04/10.74 YES( ?, 7+max([1, 1+6*Arg_0])*max([0, 2*Arg_1])+2*max([1, 1+6*Arg_0])*max([0, 3*Arg_1])+max([1, 1+6*Arg_0])+max([0, Arg_2])+max([0, Arg_0])+max([0, 3*Arg_2])+max([0, 4*Arg_0]) {O(n^2)}) 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Initial Complexity Problem: 15.04/10.74 15.04/10.74 Start: evalnestedLoopstart 15.04/10.74 15.04/10.74 Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5, Arg_6, Arg_7 15.04/10.74 15.04/10.74 Temp_Vars: 15.04/10.74 15.04/10.74 Locations: evalnestedLoopbb4in, evalnestedLoopbb5in, evalnestedLoopbb6in, evalnestedLoopbb7in, evalnestedLoopbb8in, evalnestedLoopbb9in, evalnestedLoopentryin, evalnestedLoopreturnin, evalnestedLoopstart, evalnestedLoopstop 15.04/10.74 15.04/10.74 Transitions: 15.04/10.74 15.04/10.74 evalnestedLoopbb4in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopbb6in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_4+1,Arg_5):|:0 <= Arg_5 && 0 <= Arg_4+Arg_5 && 0 <= Arg_3+Arg_5 && Arg_3 <= Arg_5 && 0 <= Arg_2+Arg_5 && 1 <= Arg_1+Arg_5 && 1 <= Arg_0+Arg_5 && 1+Arg_4 <= Arg_1 && 0 <= Arg_4 && 0 <= Arg_3+Arg_4 && 0 <= Arg_2+Arg_4 && 1 <= Arg_1+Arg_4 && 1 <= Arg_0+Arg_4 && 1+Arg_3 <= Arg_0 && 0 <= Arg_3 && 0 <= Arg_2+Arg_3 && 1 <= Arg_1+Arg_3 && 1 <= Arg_0+Arg_3 && 0 <= Arg_2 && 1 <= Arg_1+Arg_2 && 1 <= Arg_0+Arg_2 && 1 <= Arg_1 && 2 <= Arg_0+Arg_1 && 1 <= Arg_0 15.04/10.74 15.04/10.74 evalnestedLoopbb5in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopbb6in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7+1):|:1+Arg_7 <= Arg_2 && 0 <= Arg_7 && 1 <= Arg_6+Arg_7 && 0 <= Arg_5+Arg_7 && Arg_5 <= Arg_7 && 0 <= Arg_4+Arg_7 && 0 <= Arg_3+Arg_7 && Arg_3 <= Arg_7 && 1 <= Arg_2+Arg_7 && 1 <= Arg_1+Arg_7 && 1 <= Arg_0+Arg_7 && Arg_6 <= 1+Arg_4 && Arg_6 <= Arg_1 && 1 <= Arg_6 && 1 <= Arg_5+Arg_6 && 1 <= Arg_4+Arg_6 && 1+Arg_4 <= Arg_6 && 1 <= Arg_3+Arg_6 && 2 <= Arg_2+Arg_6 && 2 <= Arg_1+Arg_6 && 2 <= Arg_0+Arg_6 && 1+Arg_5 <= Arg_2 && 0 <= Arg_5 && 0 <= Arg_4+Arg_5 && 0 <= Arg_3+Arg_5 && Arg_3 <= Arg_5 && 1 <= Arg_2+Arg_5 && 1 <= Arg_1+Arg_5 && 1 <= Arg_0+Arg_5 && 1+Arg_4 <= Arg_1 && 0 <= Arg_4 && 0 <= Arg_3+Arg_4 && 1 <= Arg_2+Arg_4 && 1 <= Arg_1+Arg_4 && 1 <= Arg_0+Arg_4 && 1+Arg_3 <= Arg_2 && 1+Arg_3 <= Arg_0 && 0 <= Arg_3 && 1 <= Arg_2+Arg_3 && 1 <= Arg_1+Arg_3 && 1 <= Arg_0+Arg_3 && 1 <= Arg_2 && 2 <= Arg_1+Arg_2 && 2 <= Arg_0+Arg_2 && 1 <= Arg_1 && 2 <= Arg_0+Arg_1 && 1 <= Arg_0 15.04/10.74 15.04/10.74 evalnestedLoopbb6in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopbb5in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|:0 <= Arg_7 && 1 <= Arg_6+Arg_7 && 0 <= Arg_5+Arg_7 && Arg_5 <= Arg_7 && 0 <= Arg_4+Arg_7 && 0 <= Arg_3+Arg_7 && Arg_3 <= Arg_7 && 0 <= Arg_2+Arg_7 && 1 <= Arg_1+Arg_7 && 1 <= Arg_0+Arg_7 && Arg_6 <= 1+Arg_4 && Arg_6 <= Arg_1 && 1 <= Arg_6 && 1 <= Arg_5+Arg_6 && 1 <= Arg_4+Arg_6 && 1+Arg_4 <= Arg_6 && 1 <= Arg_3+Arg_6 && 1 <= Arg_2+Arg_6 && 2 <= Arg_1+Arg_6 && 2 <= Arg_0+Arg_6 && 0 <= Arg_5 && 0 <= Arg_4+Arg_5 && 0 <= Arg_3+Arg_5 && Arg_3 <= Arg_5 && 0 <= Arg_2+Arg_5 && 1 <= Arg_1+Arg_5 && 1 <= Arg_0+Arg_5 && 1+Arg_4 <= Arg_1 && 0 <= Arg_4 && 0 <= Arg_3+Arg_4 && 0 <= Arg_2+Arg_4 && 1 <= Arg_1+Arg_4 && 1 <= Arg_0+Arg_4 && 1+Arg_3 <= Arg_0 && 0 <= Arg_3 && 0 <= Arg_2+Arg_3 && 1 <= Arg_1+Arg_3 && 1 <= Arg_0+Arg_3 && 0 <= Arg_2 && 1 <= Arg_1+Arg_2 && 1 <= Arg_0+Arg_2 && 1 <= Arg_1 && 2 <= Arg_0+Arg_1 && 1 <= Arg_0 && Arg_7+1 <= Arg_2 15.04/10.74 15.04/10.74 evalnestedLoopbb6in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopbb7in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_6,Arg_7,Arg_6,Arg_7):|:0 <= Arg_7 && 1 <= Arg_6+Arg_7 && 0 <= Arg_5+Arg_7 && Arg_5 <= Arg_7 && 0 <= Arg_4+Arg_7 && 0 <= Arg_3+Arg_7 && Arg_3 <= Arg_7 && 0 <= Arg_2+Arg_7 && 1 <= Arg_1+Arg_7 && 1 <= Arg_0+Arg_7 && Arg_6 <= 1+Arg_4 && Arg_6 <= Arg_1 && 1 <= Arg_6 && 1 <= Arg_5+Arg_6 && 1 <= Arg_4+Arg_6 && 1+Arg_4 <= Arg_6 && 1 <= Arg_3+Arg_6 && 1 <= Arg_2+Arg_6 && 2 <= Arg_1+Arg_6 && 2 <= Arg_0+Arg_6 && 0 <= Arg_5 && 0 <= Arg_4+Arg_5 && 0 <= Arg_3+Arg_5 && Arg_3 <= Arg_5 && 0 <= Arg_2+Arg_5 && 1 <= Arg_1+Arg_5 && 1 <= Arg_0+Arg_5 && 1+Arg_4 <= Arg_1 && 0 <= Arg_4 && 0 <= Arg_3+Arg_4 && 0 <= Arg_2+Arg_4 && 1 <= Arg_1+Arg_4 && 1 <= Arg_0+Arg_4 && 1+Arg_3 <= Arg_0 && 0 <= Arg_3 && 0 <= Arg_2+Arg_3 && 1 <= Arg_1+Arg_3 && 1 <= Arg_0+Arg_3 && 0 <= Arg_2 && 1 <= Arg_1+Arg_2 && 1 <= Arg_0+Arg_2 && 1 <= Arg_1 && 2 <= Arg_0+Arg_1 && 1 <= Arg_0 && Arg_2 <= Arg_7 15.04/10.74 15.04/10.74 evalnestedLoopbb7in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopbb4in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|:0 <= Arg_5 && 0 <= Arg_4+Arg_5 && 0 <= Arg_3+Arg_5 && Arg_3 <= Arg_5 && 0 <= Arg_2+Arg_5 && 0 <= Arg_1+Arg_5 && 1 <= Arg_0+Arg_5 && Arg_4 <= Arg_1 && 0 <= Arg_4 && 0 <= Arg_3+Arg_4 && 0 <= Arg_2+Arg_4 && 0 <= Arg_1+Arg_4 && 1 <= Arg_0+Arg_4 && 1+Arg_3 <= Arg_0 && 0 <= Arg_3 && 0 <= Arg_2+Arg_3 && 0 <= Arg_1+Arg_3 && 1 <= Arg_0+Arg_3 && 0 <= Arg_2 && 0 <= Arg_1+Arg_2 && 1 <= Arg_0+Arg_2 && 0 <= Arg_1 && 1 <= Arg_0+Arg_1 && 1 <= Arg_0 && Arg_4+1 <= Arg_1 15.04/10.74 15.04/10.74 evalnestedLoopbb7in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopbb8in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|:0 <= Arg_5 && 0 <= Arg_4+Arg_5 && 0 <= Arg_3+Arg_5 && Arg_3 <= Arg_5 && 0 <= Arg_2+Arg_5 && 0 <= Arg_1+Arg_5 && 1 <= Arg_0+Arg_5 && Arg_4 <= Arg_1 && 0 <= Arg_4 && 0 <= Arg_3+Arg_4 && 0 <= Arg_2+Arg_4 && 0 <= Arg_1+Arg_4 && 1 <= Arg_0+Arg_4 && 1+Arg_3 <= Arg_0 && 0 <= Arg_3 && 0 <= Arg_2+Arg_3 && 0 <= Arg_1+Arg_3 && 1 <= Arg_0+Arg_3 && 0 <= Arg_2 && 0 <= Arg_1+Arg_2 && 1 <= Arg_0+Arg_2 && 0 <= Arg_1 && 1 <= Arg_0+Arg_1 && 1 <= Arg_0 && Arg_1 <= Arg_4 15.04/10.74 15.04/10.74 evalnestedLoopbb8in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopbb9in(Arg_0,Arg_1,Arg_2,Arg_5+1,Arg_4,Arg_5,Arg_6,Arg_7):|:0 <= Arg_5 && 0 <= Arg_4+Arg_5 && 0 <= Arg_3+Arg_5 && Arg_3 <= Arg_5 && 0 <= Arg_2+Arg_5 && 0 <= Arg_1+Arg_5 && 1 <= Arg_0+Arg_5 && Arg_4 <= Arg_1 && 0 <= Arg_4 && 0 <= Arg_3+Arg_4 && 0 <= Arg_2+Arg_4 && 0 <= Arg_1+Arg_4 && Arg_1 <= Arg_4 && 1 <= Arg_0+Arg_4 && 1+Arg_3 <= Arg_0 && 0 <= Arg_3 && 0 <= Arg_2+Arg_3 && 0 <= Arg_1+Arg_3 && 1 <= Arg_0+Arg_3 && 0 <= Arg_2 && 0 <= Arg_1+Arg_2 && 1 <= Arg_0+Arg_2 && 0 <= Arg_1 && 1 <= Arg_0+Arg_1 && 1 <= Arg_0 15.04/10.74 15.04/10.74 evalnestedLoopbb9in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopbb7in(Arg_0,Arg_1,Arg_2,Arg_3,0,Arg_3,Arg_6,Arg_7):|:0 <= Arg_3 && 0 <= Arg_2+Arg_3 && 0 <= Arg_1+Arg_3 && 0 <= Arg_0+Arg_3 && 0 <= Arg_2 && 0 <= Arg_1+Arg_2 && 0 <= Arg_0+Arg_2 && 0 <= Arg_1 && 0 <= Arg_0+Arg_1 && 0 <= Arg_0 && Arg_3+1 <= Arg_0 15.04/10.74 15.04/10.74 evalnestedLoopbb9in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopreturnin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|:0 <= Arg_3 && 0 <= Arg_2+Arg_3 && 0 <= Arg_1+Arg_3 && 0 <= Arg_0+Arg_3 && 0 <= Arg_2 && 0 <= Arg_1+Arg_2 && 0 <= Arg_0+Arg_2 && 0 <= Arg_1 && 0 <= Arg_0+Arg_1 && 0 <= Arg_0 && Arg_0 <= Arg_3 15.04/10.74 15.04/10.74 evalnestedLoopentryin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopbb9in(Arg_0,Arg_1,Arg_2,0,Arg_4,Arg_5,Arg_6,Arg_7):|:0 <= Arg_0 && 0 <= Arg_1 && 0 <= Arg_2 15.04/10.74 15.04/10.74 evalnestedLoopentryin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopreturnin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|:Arg_0+1 <= 0 15.04/10.74 15.04/10.74 evalnestedLoopentryin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopreturnin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|:Arg_1+1 <= 0 15.04/10.74 15.04/10.74 evalnestedLoopentryin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopreturnin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|:Arg_2+1 <= 0 15.04/10.74 15.04/10.74 evalnestedLoopreturnin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopstop(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|: 15.04/10.74 15.04/10.74 evalnestedLoopstart(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> evalnestedLoopentryin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|: 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Timebounds: 15.04/10.74 15.04/10.74 Overall timebound: 7+max([1, 1+6*Arg_0])*max([0, 2*Arg_1])+2*max([1, 1+6*Arg_0])*max([0, 3*Arg_1])+max([1, 1+6*Arg_0])+max([0, Arg_2])+max([0, Arg_0])+max([0, 3*Arg_2])+max([0, 4*Arg_0]) {O(n^2)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in: max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in: max([0, 3*Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in: max([1, 1+6*Arg_0])*max([0, 2*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in: max([0, 4*Arg_0]) {O(n)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in: max([0, Arg_0]) {O(n)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in: max([1, 1+6*Arg_0]) {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin: 1 {O(1)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in: 1 {O(1)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin: 1 {O(1)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin: 1 {O(1)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin: 1 {O(1)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop: 1 {O(1)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin: 1 {O(1)} 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Costbounds: 15.04/10.74 15.04/10.74 Overall costbound: 7+max([1, 1+6*Arg_0])*max([0, 2*Arg_1])+2*max([1, 1+6*Arg_0])*max([0, 3*Arg_1])+max([1, 1+6*Arg_0])+max([0, Arg_2])+max([0, Arg_0])+max([0, 3*Arg_2])+max([0, 4*Arg_0]) {O(n^2)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in: max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in: max([0, 3*Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in: max([1, 1+6*Arg_0])*max([0, 2*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in: max([0, 4*Arg_0]) {O(n)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in: max([0, Arg_0]) {O(n)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in: max([1, 1+6*Arg_0]) {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin: 1 {O(1)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in: 1 {O(1)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin: 1 {O(1)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin: 1 {O(1)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin: 1 {O(1)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop: 1 {O(1)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin: 1 {O(1)} 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Sizebounds: 15.04/10.74 15.04/10.74 `Lower: 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_0: 1 {O(1)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_1: 1 {O(1)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_2: 0 {O(1)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_3: 0 {O(1)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_4: 0 {O(1)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_5: 0 {O(1)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_6: 1 {O(1)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_7: 0 {O(1)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_0: 1 {O(1)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_1: 1 {O(1)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_2: 1 {O(1)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_3: 0 {O(1)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_4: 0 {O(1)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_5: 0 {O(1)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_6: 1 {O(1)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_7: 1 {O(1)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_0: 1 {O(1)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_1: 1 {O(1)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_2: 1 {O(1)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_3: 0 {O(1)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_4: 0 {O(1)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_5: 0 {O(1)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_6: 1 {O(1)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_7: 0 {O(1)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_0: 1 {O(1)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_1: 1 {O(1)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_2: 0 {O(1)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_3: 0 {O(1)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_4: 1 {O(1)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_5: 0 {O(1)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_6: 1 {O(1)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_7: 0 {O(1)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_0: 1 {O(1)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_1: 1 {O(1)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_2: 0 {O(1)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_3: 0 {O(1)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_4: 0 {O(1)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_5: 0 {O(1)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_6: min([1, Arg_6]) {O(n)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_7: min([0, Arg_7]) {O(n)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_0: 1 {O(1)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_1: 0 {O(1)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_2: 0 {O(1)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_3: 0 {O(1)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_4: 0 {O(1)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_5: 0 {O(1)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_6: min([1, Arg_6]) {O(n)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_7: min([0, Arg_7]) {O(n)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_0: 1 {O(1)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_1: 0 {O(1)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_2: 0 {O(1)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_3: 1 {O(1)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_4: 0 {O(1)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_5: 0 {O(1)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_6: min([1, Arg_6]) {O(n)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_7: min([0, Arg_7]) {O(n)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_0: 1 {O(1)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_1: 0 {O(1)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_2: 0 {O(1)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_3: 0 {O(1)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_4: 0 {O(1)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_5: 0 {O(1)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_6: min([1, Arg_6]) {O(n)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_7: min([0, Arg_7]) {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_0: 0 {O(1)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_1: 0 {O(1)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_2: 0 {O(1)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_3: 0 {O(1)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_4: min([0, Arg_4]) {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_5: min([0, Arg_5]) {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_6: min([1, Arg_6]) {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_7: min([0, Arg_7]) {O(n)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_0: 0 {O(1)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_1: 0 {O(1)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_2: 0 {O(1)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_3: 0 {O(1)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_4: Arg_4 {O(n)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_5: Arg_5 {O(n)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_6: Arg_6 {O(n)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_7: Arg_7 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_3: Arg_3 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_4: Arg_4 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_5: Arg_5 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_6: Arg_6 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_7: Arg_7 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_3: Arg_3 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_4: Arg_4 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_5: Arg_5 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_6: Arg_6 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_7: Arg_7 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_3: Arg_3 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_4: Arg_4 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_5: Arg_5 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_6: Arg_6 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_7: Arg_7 {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_0: min([0, Arg_0]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_1: min([0, Arg_1]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_2: min([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_3: min([0, Arg_3]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_4: min([0, Arg_4]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_5: min([0, Arg_5]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_6: min([1, Arg_6]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_7: min([0, Arg_7]) {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_3: Arg_3 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_4: Arg_4 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_5: Arg_5 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_6: Arg_6 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_7: Arg_7 {O(n)} 15.04/10.74 15.04/10.74 `Upper: 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_3: max([0, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_4: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_5: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_6: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in->evalnestedLoopbb6in, Arg_7: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_3: max([0, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_4: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_5: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_6: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in->evalnestedLoopbb6in, Arg_7: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_3: max([0, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_4: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_5: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_6: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in->evalnestedLoopbb5in, Arg_7: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_3: max([0, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_4: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_5: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_6: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in->evalnestedLoopbb7in, Arg_7: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_3: max([0, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_4: max([1, 1+6*Arg_0])*max([0, 3*Arg_1]) {O(n^2)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_5: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_6: max([Arg_6, max([1, 1+6*Arg_0])*max([0, 3*Arg_1])]) {O(n^2)} 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in->evalnestedLoopbb4in, Arg_7: max([Arg_7, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_3: max([0, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_4: max([0, max([1, 1+6*Arg_0])*max([0, 3*Arg_1])]) {O(n^2)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_5: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_6: max([Arg_6, max([1, 1+6*Arg_0])*max([0, 3*Arg_1])]) {O(n^2)} 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in->evalnestedLoopbb8in, Arg_7: max([Arg_7, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_3: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_4: max([0, max([1, 1+6*Arg_0])*max([0, 3*Arg_1])]) {O(n^2)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_5: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_6: max([Arg_6, max([1, 1+6*Arg_0])*max([0, 3*Arg_1])]) {O(n^2)} 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in->evalnestedLoopbb9in, Arg_7: max([Arg_7, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_3: max([0, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_4: 0 {O(1)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_5: max([0, Arg_0])+max([0, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_6: max([Arg_6, max([1, 1+6*Arg_0])*max([0, 3*Arg_1])]) {O(n^2)} 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in->evalnestedLoopbb7in, Arg_7: max([Arg_7, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_3: max([0, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_4: max([0, max([Arg_4, max([1, 1+6*Arg_0])*max([0, 3*Arg_1])])]) {O(n^2)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_5: max([Arg_5, max([0, Arg_0])+max([0, Arg_2])]) {O(n)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_6: max([Arg_6, max([Arg_6, max([1, 1+6*Arg_0])*max([0, 3*Arg_1])])]) {O(n^2)} 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in->evalnestedLoopreturnin, Arg_7: max([Arg_7, max([Arg_7, max([0, Arg_0])+max([0, Arg_2])])]) {O(n)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_3: 0 {O(1)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_4: Arg_4 {O(n)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_5: Arg_5 {O(n)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_6: Arg_6 {O(n)} 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin->evalnestedLoopbb9in, Arg_7: Arg_7 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_0: -1 {O(1)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_3: Arg_3 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_4: Arg_4 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_5: Arg_5 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_6: Arg_6 {O(n)} 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_7: Arg_7 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_1: -1 {O(1)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_3: Arg_3 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_4: Arg_4 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_5: Arg_5 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_6: Arg_6 {O(n)} 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_7: Arg_7 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_2: -1 {O(1)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_3: Arg_3 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_4: Arg_4 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_5: Arg_5 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_6: Arg_6 {O(n)} 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin->evalnestedLoopreturnin, Arg_7: Arg_7 {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_0: max([-1, Arg_0]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_1: max([-1, Arg_1]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_2: max([-1, Arg_2]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_3: max([0, max([Arg_3, max([0, Arg_0])+max([0, Arg_2])])]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_4: max([0, max([Arg_4, max([Arg_4, max([1, 1+6*Arg_0])*max([0, 3*Arg_1])])])]) {O(n^2)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_5: max([Arg_5, max([Arg_5, max([0, Arg_0])+max([0, Arg_2])])]) {O(n)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_6: max([Arg_6, max([Arg_6, max([Arg_6, max([1, 1+6*Arg_0])*max([0, 3*Arg_1])])])]) {O(n^2)} 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin->evalnestedLoopstop, Arg_7: max([Arg_7, max([Arg_7, max([Arg_7, max([0, Arg_0])+max([0, Arg_2])])])]) {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_0: Arg_0 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_1: Arg_1 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_2: Arg_2 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_3: Arg_3 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_4: Arg_4 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_5: Arg_5 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_6: Arg_6 {O(n)} 15.04/10.74 15.04/10.74 0: evalnestedLoopstart->evalnestedLoopentryin, Arg_7: Arg_7 {O(n)} 15.04/10.74 15.04/10.74 15.04/10.74 ---------------------------------------- 15.04/10.74 15.04/10.74 (2) 15.04/10.74 BOUNDS(1, max(2, 2 + 12 * Arg_0) * nat(3 * Arg_1) + nat(Arg_2) + nat(Arg_0) + nat(3 * Arg_2) + nat(4 * Arg_0) + max(8, 8 + 6 * Arg_0) + max(1, 1 + 6 * Arg_0) * nat(2 * Arg_1)) 15.04/10.74 15.04/10.74 ---------------------------------------- 15.04/10.74 15.04/10.74 (3) Loat Proof (FINISHED) 15.04/10.74 15.04/10.74 15.04/10.74 ### Pre-processing the ITS problem ### 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Initial linear ITS problem 15.04/10.74 15.04/10.74 Start location: evalnestedLoopstart 15.04/10.74 15.04/10.74 0: evalnestedLoopstart -> evalnestedLoopentryin : [], cost: 1 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin -> evalnestedLoopbb9in : D'=0, [ A>=0 && B>=0 && C>=0 ], cost: 1 15.04/10.74 15.04/10.74 2: evalnestedLoopentryin -> evalnestedLoopreturnin : [ 0>=1+A ], cost: 1 15.04/10.74 15.04/10.74 3: evalnestedLoopentryin -> evalnestedLoopreturnin : [ 0>=1+B ], cost: 1 15.04/10.74 15.04/10.74 4: evalnestedLoopentryin -> evalnestedLoopreturnin : [ 0>=1+C ], cost: 1 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in -> evalnestedLoopbb7in : E'=0, F'=D, [ A>=1+D ], cost: 1 15.04/10.74 15.04/10.74 6: evalnestedLoopbb9in -> evalnestedLoopreturnin : [ D>=A ], cost: 1 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in -> evalnestedLoopbb4in : [ B>=1+E ], cost: 1 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in -> evalnestedLoopbb8in : [ E>=B ], cost: 1 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in -> evalnestedLoopbb6in : G'=1+E, H'=F, [], cost: 1 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in -> evalnestedLoopbb5in : [ C>=1+H ], cost: 1 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in -> evalnestedLoopbb7in : E'=G, F'=H, [ H>=C ], cost: 1 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in -> evalnestedLoopbb6in : H'=1+H, [], cost: 1 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in -> evalnestedLoopbb9in : D'=1+F, [], cost: 1 15.04/10.74 15.04/10.74 14: evalnestedLoopreturnin -> evalnestedLoopstop : [], cost: 1 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Removed unreachable and leaf rules: 15.04/10.74 15.04/10.74 Start location: evalnestedLoopstart 15.04/10.74 15.04/10.74 0: evalnestedLoopstart -> evalnestedLoopentryin : [], cost: 1 15.04/10.74 15.04/10.74 1: evalnestedLoopentryin -> evalnestedLoopbb9in : D'=0, [ A>=0 && B>=0 && C>=0 ], cost: 1 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in -> evalnestedLoopbb7in : E'=0, F'=D, [ A>=1+D ], cost: 1 15.04/10.74 15.04/10.74 7: evalnestedLoopbb7in -> evalnestedLoopbb4in : [ B>=1+E ], cost: 1 15.04/10.74 15.04/10.74 8: evalnestedLoopbb7in -> evalnestedLoopbb8in : [ E>=B ], cost: 1 15.04/10.74 15.04/10.74 9: evalnestedLoopbb4in -> evalnestedLoopbb6in : G'=1+E, H'=F, [], cost: 1 15.04/10.74 15.04/10.74 10: evalnestedLoopbb6in -> evalnestedLoopbb5in : [ C>=1+H ], cost: 1 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in -> evalnestedLoopbb7in : E'=G, F'=H, [ H>=C ], cost: 1 15.04/10.74 15.04/10.74 12: evalnestedLoopbb5in -> evalnestedLoopbb6in : H'=1+H, [], cost: 1 15.04/10.74 15.04/10.74 13: evalnestedLoopbb8in -> evalnestedLoopbb9in : D'=1+F, [], cost: 1 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 ### Simplification by acceleration and chaining ### 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Eliminated locations (on linear paths): 15.04/10.74 15.04/10.74 Start location: evalnestedLoopstart 15.04/10.74 15.04/10.74 15: evalnestedLoopstart -> evalnestedLoopbb9in : D'=0, [ A>=0 && B>=0 && C>=0 ], cost: 2 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in -> evalnestedLoopbb7in : E'=0, F'=D, [ A>=1+D ], cost: 1 15.04/10.74 15.04/10.74 16: evalnestedLoopbb7in -> evalnestedLoopbb6in : G'=1+E, H'=F, [ B>=1+E ], cost: 2 15.04/10.74 15.04/10.74 17: evalnestedLoopbb7in -> evalnestedLoopbb9in : D'=1+F, [ E>=B ], cost: 2 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in -> evalnestedLoopbb7in : E'=G, F'=H, [ H>=C ], cost: 1 15.04/10.74 15.04/10.74 18: evalnestedLoopbb6in -> evalnestedLoopbb6in : H'=1+H, [ C>=1+H ], cost: 2 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Accelerating simple loops of location 5. 15.04/10.74 15.04/10.74 Accelerating the following rules: 15.04/10.74 15.04/10.74 18: evalnestedLoopbb6in -> evalnestedLoopbb6in : H'=1+H, [ C>=1+H ], cost: 2 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Accelerated rule 18 with metering function C-H, yielding the new rule 19. 15.04/10.74 15.04/10.74 Removing the simple loops: 18. 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Accelerated all simple loops using metering functions (where possible): 15.04/10.74 15.04/10.74 Start location: evalnestedLoopstart 15.04/10.74 15.04/10.74 15: evalnestedLoopstart -> evalnestedLoopbb9in : D'=0, [ A>=0 && B>=0 && C>=0 ], cost: 2 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in -> evalnestedLoopbb7in : E'=0, F'=D, [ A>=1+D ], cost: 1 15.04/10.74 15.04/10.74 16: evalnestedLoopbb7in -> evalnestedLoopbb6in : G'=1+E, H'=F, [ B>=1+E ], cost: 2 15.04/10.74 15.04/10.74 17: evalnestedLoopbb7in -> evalnestedLoopbb9in : D'=1+F, [ E>=B ], cost: 2 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in -> evalnestedLoopbb7in : E'=G, F'=H, [ H>=C ], cost: 1 15.04/10.74 15.04/10.74 19: evalnestedLoopbb6in -> evalnestedLoopbb6in : H'=C, [ C>=1+H ], cost: 2*C-2*H 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Chained accelerated rules (with incoming rules): 15.04/10.74 15.04/10.74 Start location: evalnestedLoopstart 15.04/10.74 15.04/10.74 15: evalnestedLoopstart -> evalnestedLoopbb9in : D'=0, [ A>=0 && B>=0 && C>=0 ], cost: 2 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in -> evalnestedLoopbb7in : E'=0, F'=D, [ A>=1+D ], cost: 1 15.04/10.74 15.04/10.74 16: evalnestedLoopbb7in -> evalnestedLoopbb6in : G'=1+E, H'=F, [ B>=1+E ], cost: 2 15.04/10.74 15.04/10.74 17: evalnestedLoopbb7in -> evalnestedLoopbb9in : D'=1+F, [ E>=B ], cost: 2 15.04/10.74 15.04/10.74 20: evalnestedLoopbb7in -> evalnestedLoopbb6in : G'=1+E, H'=C, [ B>=1+E && C>=1+F ], cost: 2-2*F+2*C 15.04/10.74 15.04/10.74 11: evalnestedLoopbb6in -> evalnestedLoopbb7in : E'=G, F'=H, [ H>=C ], cost: 1 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Eliminated locations (on tree-shaped paths): 15.04/10.74 15.04/10.74 Start location: evalnestedLoopstart 15.04/10.74 15.04/10.74 15: evalnestedLoopstart -> evalnestedLoopbb9in : D'=0, [ A>=0 && B>=0 && C>=0 ], cost: 2 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in -> evalnestedLoopbb7in : E'=0, F'=D, [ A>=1+D ], cost: 1 15.04/10.74 15.04/10.74 17: evalnestedLoopbb7in -> evalnestedLoopbb9in : D'=1+F, [ E>=B ], cost: 2 15.04/10.74 15.04/10.74 21: evalnestedLoopbb7in -> evalnestedLoopbb7in : E'=1+E, F'=F, G'=1+E, H'=F, [ B>=1+E && F>=C ], cost: 3 15.04/10.74 15.04/10.74 22: evalnestedLoopbb7in -> evalnestedLoopbb7in : E'=1+E, F'=C, G'=1+E, H'=C, [ B>=1+E && C>=1+F ], cost: 3-2*F+2*C 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Accelerating simple loops of location 3. 15.04/10.74 15.04/10.74 Simplified some of the simple loops (and removed duplicate rules). 15.04/10.74 15.04/10.74 Accelerating the following rules: 15.04/10.74 15.04/10.74 21: evalnestedLoopbb7in -> evalnestedLoopbb7in : E'=1+E, G'=1+E, H'=F, [ B>=1+E && F>=C ], cost: 3 15.04/10.74 15.04/10.74 22: evalnestedLoopbb7in -> evalnestedLoopbb7in : E'=1+E, F'=C, G'=1+E, H'=C, [ B>=1+E && C>=1+F ], cost: 3-2*F+2*C 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Accelerated rule 21 with metering function -E+B, yielding the new rule 23. 15.04/10.74 15.04/10.74 Found no metering function for rule 22. 15.04/10.74 15.04/10.74 Removing the simple loops: 21. 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Accelerated all simple loops using metering functions (where possible): 15.04/10.74 15.04/10.74 Start location: evalnestedLoopstart 15.04/10.74 15.04/10.74 15: evalnestedLoopstart -> evalnestedLoopbb9in : D'=0, [ A>=0 && B>=0 && C>=0 ], cost: 2 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in -> evalnestedLoopbb7in : E'=0, F'=D, [ A>=1+D ], cost: 1 15.04/10.74 15.04/10.74 17: evalnestedLoopbb7in -> evalnestedLoopbb9in : D'=1+F, [ E>=B ], cost: 2 15.04/10.74 15.04/10.74 22: evalnestedLoopbb7in -> evalnestedLoopbb7in : E'=1+E, F'=C, G'=1+E, H'=C, [ B>=1+E && C>=1+F ], cost: 3-2*F+2*C 15.04/10.74 15.04/10.74 23: evalnestedLoopbb7in -> evalnestedLoopbb7in : E'=B, G'=B, H'=F, [ B>=1+E && F>=C ], cost: -3*E+3*B 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Chained accelerated rules (with incoming rules): 15.04/10.74 15.04/10.74 Start location: evalnestedLoopstart 15.04/10.74 15.04/10.74 15: evalnestedLoopstart -> evalnestedLoopbb9in : D'=0, [ A>=0 && B>=0 && C>=0 ], cost: 2 15.04/10.74 15.04/10.74 5: evalnestedLoopbb9in -> evalnestedLoopbb7in : E'=0, F'=D, [ A>=1+D ], cost: 1 15.04/10.74 15.04/10.74 24: evalnestedLoopbb9in -> evalnestedLoopbb7in : E'=1, F'=C, G'=1, H'=C, [ A>=1+D && B>=1 && C>=1+D ], cost: 4+2*C-2*D 15.04/10.74 15.04/10.74 25: evalnestedLoopbb9in -> evalnestedLoopbb7in : E'=B, F'=D, G'=B, H'=D, [ A>=1+D && B>=1 && D>=C ], cost: 1+3*B 15.04/10.74 15.04/10.74 17: evalnestedLoopbb7in -> evalnestedLoopbb9in : D'=1+F, [ E>=B ], cost: 2 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Eliminated locations (on tree-shaped paths): 15.04/10.74 15.04/10.74 Start location: evalnestedLoopstart 15.04/10.74 15.04/10.74 15: evalnestedLoopstart -> evalnestedLoopbb9in : D'=0, [ A>=0 && B>=0 && C>=0 ], cost: 2 15.04/10.74 15.04/10.74 26: evalnestedLoopbb9in -> evalnestedLoopbb9in : D'=1+D, E'=0, F'=D, [ A>=1+D && 0>=B ], cost: 3 15.04/10.74 15.04/10.74 27: evalnestedLoopbb9in -> evalnestedLoopbb9in : D'=1+C, E'=1, F'=C, G'=1, H'=C, [ A>=1+D && B>=1 && C>=1+D && 1>=B ], cost: 6+2*C-2*D 15.04/10.74 15.04/10.74 28: evalnestedLoopbb9in -> evalnestedLoopbb9in : D'=1+D, E'=B, F'=D, G'=B, H'=D, [ A>=1+D && B>=1 && D>=C ], cost: 3+3*B 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Accelerating simple loops of location 2. 15.04/10.74 15.04/10.74 Simplified some of the simple loops (and removed duplicate rules). 15.04/10.74 15.04/10.74 Accelerating the following rules: 15.04/10.74 15.04/10.74 26: evalnestedLoopbb9in -> evalnestedLoopbb9in : D'=1+D, E'=0, F'=D, [ A>=1+D && 0>=B ], cost: 3 15.04/10.74 15.04/10.74 27: evalnestedLoopbb9in -> evalnestedLoopbb9in : D'=1+C, E'=1, F'=C, G'=1, H'=C, [ A>=1+D && 1-B==0 && C>=1+D ], cost: 6+2*C-2*D 15.04/10.74 15.04/10.74 28: evalnestedLoopbb9in -> evalnestedLoopbb9in : D'=1+D, E'=B, F'=D, G'=B, H'=D, [ A>=1+D && B>=1 && D>=C ], cost: 3+3*B 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Accelerated rule 26 with metering function -D+A, yielding the new rule 29. 15.04/10.74 15.04/10.74 Found no metering function for rule 27. 15.04/10.74 15.04/10.74 Accelerated rule 28 with metering function -D+A, yielding the new rule 30. 15.04/10.74 15.04/10.74 Removing the simple loops: 26 28. 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Accelerated all simple loops using metering functions (where possible): 15.04/10.74 15.04/10.74 Start location: evalnestedLoopstart 15.04/10.74 15.04/10.74 15: evalnestedLoopstart -> evalnestedLoopbb9in : D'=0, [ A>=0 && B>=0 && C>=0 ], cost: 2 15.04/10.74 15.04/10.74 27: evalnestedLoopbb9in -> evalnestedLoopbb9in : D'=1+C, E'=1, F'=C, G'=1, H'=C, [ A>=1+D && 1-B==0 && C>=1+D ], cost: 6+2*C-2*D 15.04/10.74 15.04/10.74 29: evalnestedLoopbb9in -> evalnestedLoopbb9in : D'=A, E'=0, F'=-1+A, [ A>=1+D && 0>=B ], cost: -3*D+3*A 15.04/10.74 15.04/10.74 30: evalnestedLoopbb9in -> evalnestedLoopbb9in : D'=A, E'=B, F'=-1+A, G'=B, H'=-1+A, [ A>=1+D && B>=1 && D>=C ], cost: -3*(D-A)*B-3*D+3*A 15.04/10.74 15.04/10.74 15.04/10.74 15.04/10.74 Chained accelerated rules (with incoming rules): 15.04/10.74 15.04/10.74 Start location: evalnestedLoopstart 15.04/10.74 15.04/10.74 15: evalnestedLoopstart -> evalnestedLoopbb9in : D'=0, [ A>=0 && B>=0 && C>=0 ], cost: 2 15.04/10.74 15.04/10.74 31: evalnestedLoopstart -> evalnestedLoopbb9in : D'=1+C, E'=1, F'=C, G'=1, H'=C, [ A>=1 && 1-B==0 && C>=1 ], cost: 8+2*C 15.04/10.74 15.04/10.74 32: evalnestedLoopstart -> evalnestedLoopbb9in : D'=A, E'=0, F'=-1+A, [ -B==0 && C>=0 && A>=1 ], cost: 2+3*A 15.04/10.74 15.04/10.74 33: evalnestedLoopstart -> evalnestedLoopbb9in : D'=A, E'=B, F'=-1+A, G'=B, H'=-1+A, [ -C==0 && A>=1 && B>=1 ], cost: 2+3*A+3*A*B 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 Removed unreachable locations (and leaf rules with constant cost): 15.04/10.75 15.04/10.75 Start location: evalnestedLoopstart 15.04/10.75 15.04/10.75 31: evalnestedLoopstart -> evalnestedLoopbb9in : D'=1+C, E'=1, F'=C, G'=1, H'=C, [ A>=1 && 1-B==0 && C>=1 ], cost: 8+2*C 15.04/10.75 15.04/10.75 32: evalnestedLoopstart -> evalnestedLoopbb9in : D'=A, E'=0, F'=-1+A, [ -B==0 && C>=0 && A>=1 ], cost: 2+3*A 15.04/10.75 15.04/10.75 33: evalnestedLoopstart -> evalnestedLoopbb9in : D'=A, E'=B, F'=-1+A, G'=B, H'=-1+A, [ -C==0 && A>=1 && B>=1 ], cost: 2+3*A+3*A*B 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 ### Computing asymptotic complexity ### 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 Fully simplified ITS problem 15.04/10.75 15.04/10.75 Start location: evalnestedLoopstart 15.04/10.75 15.04/10.75 31: evalnestedLoopstart -> evalnestedLoopbb9in : D'=1+C, E'=1, F'=C, G'=1, H'=C, [ A>=1 && 1-B==0 && C>=1 ], cost: 8+2*C 15.04/10.75 15.04/10.75 32: evalnestedLoopstart -> evalnestedLoopbb9in : D'=A, E'=0, F'=-1+A, [ -B==0 && C>=0 && A>=1 ], cost: 2+3*A 15.04/10.75 15.04/10.75 33: evalnestedLoopstart -> evalnestedLoopbb9in : D'=A, E'=B, F'=-1+A, G'=B, H'=-1+A, [ -C==0 && A>=1 && B>=1 ], cost: 2+3*A+3*A*B 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 Computing asymptotic complexity for rule 31 15.04/10.75 15.04/10.75 Solved the limit problem by the following transformations: 15.04/10.75 15.04/10.75 Created initial limit problem: 15.04/10.75 15.04/10.75 C (+/+!), 8+2*C (+), A (+/+!), 2-B (+/+!), B (+/+!) [not solved] 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 applying transformation rule (C) using substitution {B==1} 15.04/10.75 15.04/10.75 resulting limit problem: 15.04/10.75 15.04/10.75 1 (+/+!), C (+/+!), 8+2*C (+), A (+/+!) [not solved] 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 applying transformation rule (B), deleting 1 (+/+!) 15.04/10.75 15.04/10.75 resulting limit problem: 15.04/10.75 15.04/10.75 C (+/+!), 8+2*C (+), A (+/+!) [not solved] 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 removing all constraints (solved by SMT) 15.04/10.75 15.04/10.75 resulting limit problem: [solved] 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 applying transformation rule (C) using substitution {C==n,A==n} 15.04/10.75 15.04/10.75 resulting limit problem: 15.04/10.75 15.04/10.75 [solved] 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 Solution: 15.04/10.75 15.04/10.75 C / n 15.04/10.75 15.04/10.75 A / n 15.04/10.75 15.04/10.75 B / 1 15.04/10.75 15.04/10.75 Resulting cost 8+2*n has complexity: Poly(n^1) 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 Found new complexity Poly(n^1). 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 Computing asymptotic complexity for rule 33 15.04/10.75 15.04/10.75 Solved the limit problem by the following transformations: 15.04/10.75 15.04/10.75 Created initial limit problem: 15.04/10.75 15.04/10.75 1+C (+/+!), A (+/+!), 2+3*A+3*A*B (+), 1-C (+/+!), B (+/+!) [not solved] 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 applying transformation rule (C) using substitution {C==0} 15.04/10.75 15.04/10.75 resulting limit problem: 15.04/10.75 15.04/10.75 1 (+/+!), A (+/+!), 2+3*A+3*A*B (+), B (+/+!) [not solved] 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 applying transformation rule (B), deleting 1 (+/+!) 15.04/10.75 15.04/10.75 resulting limit problem: 15.04/10.75 15.04/10.75 A (+/+!), 2+3*A+3*A*B (+), B (+/+!) [not solved] 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 removing all constraints (solved by SMT) 15.04/10.75 15.04/10.75 resulting limit problem: [solved] 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 applying transformation rule (C) using substitution {A==n,B==n} 15.04/10.75 15.04/10.75 resulting limit problem: 15.04/10.75 15.04/10.75 [solved] 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 Solution: 15.04/10.75 15.04/10.75 C / 0 15.04/10.75 15.04/10.75 A / n 15.04/10.75 15.04/10.75 B / n 15.04/10.75 15.04/10.75 Resulting cost 2+3*n^2+3*n has complexity: Poly(n^2) 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 Found new complexity Poly(n^2). 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 Obtained the following overall complexity (w.r.t. the length of the input n): 15.04/10.75 15.04/10.75 Complexity: Poly(n^2) 15.04/10.75 15.04/10.75 Cpx degree: 2 15.04/10.75 15.04/10.75 Solved cost: 2+3*n^2+3*n 15.04/10.75 15.04/10.75 Rule cost: 2+3*A+3*A*B 15.04/10.75 15.04/10.75 Rule guard: [ -C==0 && A>=1 && B>=1 ] 15.04/10.75 15.04/10.75 15.04/10.75 15.04/10.75 WORST_CASE(Omega(n^2),?) 15.04/10.75 15.04/10.75 15.04/10.75 ---------------------------------------- 15.04/10.75 15.04/10.75 (4) 15.04/10.75 BOUNDS(n^2, INF) 15.13/11.94 EOF