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