/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.koat /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^4), O(n^7)) proof of /export/starexec/sandbox2/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^4, nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * max(4, -2 + 6 * Arg_0 + 6 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * max(1, -1 + 2 * Arg_0 + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(-10 * Arg_3) * nat(Arg_1)) + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + nat(3 * Arg_1) * nat(Arg_0 + Arg_1) + nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * max(1, -1 + 2 * Arg_0 + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * max(4, -2 + 6 * Arg_0 + 6 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(3 * Arg_0 * max(3 * Arg_1, min(3, 3 * Arg_1))) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(-10 * Arg_3) * nat(Arg_1)) + 2 * nat(-10 * Arg_3) * nat(Arg_1) + nat(-10 * Arg_3) + nat(-10 * Arg_3) * max(1, -1 + 2 * Arg_0 + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(-10 * Arg_3) * max(4, -2 + 6 * Arg_0 + 6 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(3 * Arg_0 * max(3 * Arg_1, min(3, 3 * Arg_1))) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(6 * Arg_0) + nat(-2 * Arg_4) + nat(3 * Arg_0 * max(4 * Arg_1, min(4, 4 * Arg_1))) + nat(4 * Arg_1) + max(1, 2 + Arg_0) + nat(-9 * Arg_4) + max(3, 3 + 6 * Arg_1) + nat(6 * Arg_0 * max(3 * Arg_1, min(3, 3 * Arg_1)))). (0) CpxIntTrs (1) Koat2 Proof [FINISHED, 8967 ms] (2) BOUNDS(1, nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * max(4, -2 + 6 * Arg_0 + 6 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * max(1, -1 + 2 * Arg_0 + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(-10 * Arg_3) * nat(Arg_1)) + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + nat(3 * Arg_1) * nat(Arg_0 + Arg_1) + nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * max(1, -1 + 2 * Arg_0 + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * max(4, -2 + 6 * Arg_0 + 6 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(3 * Arg_0 * max(3 * Arg_1, min(3, 3 * Arg_1))) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(-10 * Arg_3) * nat(Arg_1)) + 2 * nat(-10 * Arg_3) * nat(Arg_1) + nat(-10 * Arg_3) + nat(-10 * Arg_3) * max(1, -1 + 2 * Arg_0 + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(-10 * Arg_3) * max(4, -2 + 6 * Arg_0 + 6 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(3 * Arg_0 * max(3 * Arg_1, min(3, 3 * Arg_1))) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(6 * Arg_0) + nat(-2 * Arg_4) + nat(3 * Arg_0 * max(4 * Arg_1, min(4, 4 * Arg_1))) + nat(4 * Arg_1) + max(1, 2 + Arg_0) + nat(-9 * Arg_4) + max(3, 3 + 6 * Arg_1) + nat(6 * Arg_0 * max(3 * Arg_1, min(3, 3 * Arg_1)))) (3) Loat Proof [FINISHED, 2151 ms] (4) BOUNDS(n^4, INF) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: evalfstart(A, B, C, D, E) -> Com_1(evalfentryin(A, B, C, D, E)) :|: TRUE evalfentryin(A, B, C, D, E) -> Com_1(evalfbb10in(B, A, C, D, E)) :|: TRUE evalfbb10in(A, B, C, D, E) -> Com_1(evalfbb8in(A, B, 1, D, E)) :|: B >= 1 evalfbb10in(A, B, C, D, E) -> Com_1(evalfreturnin(A, B, C, D, E)) :|: 0 >= B evalfbb8in(A, B, C, D, E) -> Com_1(evalfbb6in(A, B, C, B, E)) :|: A >= C evalfbb8in(A, B, C, D, E) -> Com_1(evalfbb9in(A, B, C, D, E)) :|: C >= A + 1 evalfbb6in(A, B, C, D, E) -> Com_1(evalfbb4in(A, B, C, D, 1)) :|: B + C >= D evalfbb6in(A, B, C, D, E) -> Com_1(evalfbb7in(A, B, C, D, E)) :|: D >= B + C + 1 evalfbb4in(A, B, C, D, E) -> Com_1(evalfbb3in(A, B, C, D, E)) :|: D >= E evalfbb4in(A, B, C, D, E) -> Com_1(evalfbb5in(A, B, C, D, E)) :|: E >= D + 1 evalfbb3in(A, B, C, D, E) -> Com_1(evalfbb4in(A, B, C, D, E + 1)) :|: TRUE evalfbb5in(A, B, C, D, E) -> Com_1(evalfbb6in(A, B, C, D + 1, E)) :|: TRUE evalfbb7in(A, B, C, D, E) -> Com_1(evalfbb8in(A, B, C + 1, D, E)) :|: TRUE evalfbb9in(A, B, C, D, E) -> Com_1(evalfbb10in(A, B - 1, C, D, E)) :|: TRUE evalfreturnin(A, B, C, D, E) -> Com_1(evalfstop(A, B, C, D, E)) :|: TRUE The start-symbols are:[evalfstart_5] ---------------------------------------- (1) Koat2 Proof (FINISHED) YES( ?, 3+(max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+2*((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1])+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([4, -2+6*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, 3*Arg_0])+max([0, -2*Arg_4])+max([0, 3*Arg_0])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])])+max([0, 3*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])])+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])])+max([0, 3*Arg_1])+max([0, -10*Arg_3])+max([1, 2+Arg_0])+max([0, -9*Arg_4]) {O(n^7)}) Initial Complexity Problem: Start: evalfstart Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3, Arg_4 Temp_Vars: Locations: evalfbb10in, evalfbb3in, evalfbb4in, evalfbb5in, evalfbb6in, evalfbb7in, evalfbb8in, evalfbb9in, evalfentryin, evalfreturnin, evalfstart, evalfstop Transitions: evalfbb10in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb8in(Arg_0,Arg_1,1,Arg_3,Arg_4):|:1 <= Arg_1 evalfbb10in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfreturnin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4):|:Arg_1 <= 0 evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4+1):|:Arg_4 <= Arg_3 && 1 <= Arg_4 && 2 <= Arg_3+Arg_4 && 2 <= Arg_2+Arg_4 && 2 <= Arg_1+Arg_4 && 2 <= Arg_0+Arg_4 && 1 <= Arg_3 && 2 <= Arg_2+Arg_3 && 2 <= Arg_1+Arg_3 && Arg_1 <= Arg_3 && 2 <= Arg_0+Arg_3 && Arg_2 <= Arg_0 && 1 <= Arg_2 && 2 <= Arg_1+Arg_2 && 2 <= Arg_0+Arg_2 && 1 <= Arg_1 && 2 <= Arg_0+Arg_1 && 1 <= Arg_0 evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4):|:1 <= Arg_4 && 2 <= Arg_3+Arg_4 && 2 <= Arg_2+Arg_4 && 2 <= Arg_1+Arg_4 && 2 <= Arg_0+Arg_4 && 1 <= Arg_3 && 2 <= Arg_2+Arg_3 && 2 <= Arg_1+Arg_3 && Arg_1 <= Arg_3 && 2 <= Arg_0+Arg_3 && Arg_2 <= Arg_0 && 1 <= Arg_2 && 2 <= Arg_1+Arg_2 && 2 <= Arg_0+Arg_2 && 1 <= Arg_1 && 2 <= Arg_0+Arg_1 && 1 <= Arg_0 && Arg_4 <= Arg_3 evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb5in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4):|:1 <= Arg_4 && 2 <= Arg_3+Arg_4 && 2 <= Arg_2+Arg_4 && 2 <= Arg_1+Arg_4 && 2 <= Arg_0+Arg_4 && 1 <= Arg_3 && 2 <= Arg_2+Arg_3 && 2 <= Arg_1+Arg_3 && Arg_1 <= Arg_3 && 2 <= Arg_0+Arg_3 && Arg_2 <= Arg_0 && 1 <= Arg_2 && 2 <= Arg_1+Arg_2 && 2 <= Arg_0+Arg_2 && 1 <= Arg_1 && 2 <= Arg_0+Arg_1 && 1 <= Arg_0 && Arg_3+1 <= Arg_4 evalfbb5in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb6in(Arg_0,Arg_1,Arg_2,Arg_3+1,Arg_4):|:2 <= Arg_4 && 3 <= Arg_3+Arg_4 && 1+Arg_3 <= Arg_4 && 3 <= Arg_2+Arg_4 && 3 <= Arg_1+Arg_4 && 1+Arg_1 <= Arg_4 && 3 <= Arg_0+Arg_4 && 1 <= Arg_3 && 2 <= Arg_2+Arg_3 && 2 <= Arg_1+Arg_3 && Arg_1 <= Arg_3 && 2 <= Arg_0+Arg_3 && Arg_2 <= Arg_0 && 1 <= Arg_2 && 2 <= Arg_1+Arg_2 && 2 <= Arg_0+Arg_2 && 1 <= Arg_1 && 2 <= Arg_0+Arg_1 && 1 <= Arg_0 evalfbb6in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3,1):|:1 <= Arg_3 && 2 <= Arg_2+Arg_3 && 2 <= Arg_1+Arg_3 && Arg_1 <= Arg_3 && 2 <= Arg_0+Arg_3 && Arg_2 <= Arg_0 && 1 <= Arg_2 && 2 <= Arg_1+Arg_2 && 2 <= Arg_0+Arg_2 && 1 <= Arg_1 && 2 <= Arg_0+Arg_1 && 1 <= Arg_0 && Arg_3 <= Arg_1+Arg_2 evalfbb6in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb7in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4):|:1 <= Arg_3 && 2 <= Arg_2+Arg_3 && 2 <= Arg_1+Arg_3 && Arg_1 <= Arg_3 && 2 <= Arg_0+Arg_3 && Arg_2 <= Arg_0 && 1 <= Arg_2 && 2 <= Arg_1+Arg_2 && 2 <= Arg_0+Arg_2 && 1 <= Arg_1 && 2 <= Arg_0+Arg_1 && 1 <= Arg_0 && Arg_1+Arg_2+1 <= Arg_3 evalfbb7in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb8in(Arg_0,Arg_1,Arg_2+1,Arg_3,Arg_4):|:3 <= Arg_3 && 4 <= Arg_2+Arg_3 && 2+Arg_2 <= Arg_3 && 4 <= Arg_1+Arg_3 && 2+Arg_1 <= Arg_3 && 4 <= Arg_0+Arg_3 && Arg_2 <= Arg_0 && 1 <= Arg_2 && 2 <= Arg_1+Arg_2 && 2 <= Arg_0+Arg_2 && 1 <= Arg_1 && 2 <= Arg_0+Arg_1 && 1 <= Arg_0 evalfbb8in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb6in(Arg_0,Arg_1,Arg_2,Arg_1,Arg_4):|:1 <= Arg_2 && 2 <= Arg_1+Arg_2 && 1 <= Arg_1 && Arg_2 <= Arg_0 evalfbb8in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb9in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4):|:1 <= Arg_2 && 2 <= Arg_1+Arg_2 && 1 <= Arg_1 && Arg_0+1 <= Arg_2 evalfbb9in(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb10in(Arg_0,Arg_1-1,Arg_2,Arg_3,Arg_4):|:1 <= Arg_2 && 2 <= Arg_1+Arg_2 && 1+Arg_0 <= Arg_2 && 1 <= Arg_1 evalfentryin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfbb10in(Arg_1,Arg_0,Arg_2,Arg_3,Arg_4):|: evalfreturnin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfstop(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4):|:Arg_1 <= 0 evalfstart(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4) -> evalfentryin(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4):|: Timebounds: Overall timebound: 3+(max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+2*((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1])+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([4, -2+6*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, 3*Arg_0])+max([0, -2*Arg_4])+max([0, 3*Arg_0])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])])+max([0, 3*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])])+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])])+max([0, 3*Arg_1])+max([0, -10*Arg_3])+max([1, 2+Arg_0])+max([0, -9*Arg_4]) {O(n^7)} 2: evalfbb10in->evalfbb8in: max([0, 1+Arg_0]) {O(n)} 3: evalfbb10in->evalfreturnin: 1 {O(1)} 10: evalfbb3in->evalfbb4in: ((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4]) {O(n^7)} 8: evalfbb4in->evalfbb3in: ((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([4, -2+6*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -2*Arg_4]) {O(n^7)} 9: evalfbb4in->evalfbb5in: ((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]) {O(n^4)} 11: evalfbb5in->evalfbb6in: ((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]) {O(n^4)} 6: evalfbb6in->evalfbb4in: (max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]) {O(n^3)} 7: evalfbb6in->evalfbb7in: max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]) {O(n^2)} 12: evalfbb7in->evalfbb8in: max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])]) {O(n^2)} 4: evalfbb8in->evalfbb6in: max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]) {O(n^2)} 5: evalfbb8in->evalfbb9in: max([0, 3*Arg_0]) {O(n)} 13: evalfbb9in->evalfbb10in: max([0, 3*Arg_0]) {O(n)} 1: evalfentryin->evalfbb10in: 1 {O(1)} 14: evalfreturnin->evalfstop: 1 {O(1)} 0: evalfstart->evalfentryin: 1 {O(1)} Costbounds: Overall costbound: 3+(max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+2*((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1])+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([4, -2+6*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, 3*Arg_0])+max([0, -2*Arg_4])+max([0, 3*Arg_0])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])])+max([0, 3*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])])+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])])+max([0, 3*Arg_1])+max([0, -10*Arg_3])+max([1, 2+Arg_0])+max([0, -9*Arg_4]) {O(n^7)} 2: evalfbb10in->evalfbb8in: max([0, 1+Arg_0]) {O(n)} 3: evalfbb10in->evalfreturnin: 1 {O(1)} 10: evalfbb3in->evalfbb4in: ((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4]) {O(n^7)} 8: evalfbb4in->evalfbb3in: ((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([4, -2+6*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -2*Arg_4]) {O(n^7)} 9: evalfbb4in->evalfbb5in: ((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]) {O(n^4)} 11: evalfbb5in->evalfbb6in: ((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]) {O(n^4)} 6: evalfbb6in->evalfbb4in: (max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]) {O(n^3)} 7: evalfbb6in->evalfbb7in: max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]) {O(n^2)} 12: evalfbb7in->evalfbb8in: max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])]) {O(n^2)} 4: evalfbb8in->evalfbb6in: max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]) {O(n^2)} 5: evalfbb8in->evalfbb9in: max([0, 3*Arg_0]) {O(n)} 13: evalfbb9in->evalfbb10in: max([0, 3*Arg_0]) {O(n)} 1: evalfentryin->evalfbb10in: 1 {O(1)} 14: evalfreturnin->evalfstop: 1 {O(1)} 0: evalfstart->evalfentryin: 1 {O(1)} Sizebounds: `Lower: 2: evalfbb10in->evalfbb8in, Arg_0: min([1, Arg_1]) {O(n)} 2: evalfbb10in->evalfbb8in, Arg_1: 1 {O(1)} 2: evalfbb10in->evalfbb8in, Arg_2: 1 {O(1)} 2: evalfbb10in->evalfbb8in, Arg_3: min([3, Arg_3]) {O(n)} 2: evalfbb10in->evalfbb8in, Arg_4: min([2, Arg_4]) {O(n)} 3: evalfbb10in->evalfreturnin, Arg_0: min([1, Arg_1]) {O(n)} 3: evalfbb10in->evalfreturnin, Arg_1: min([0, Arg_0]) {O(n)} 3: evalfbb10in->evalfreturnin, Arg_2: min([1, Arg_2]) {O(n)} 3: evalfbb10in->evalfreturnin, Arg_3: min([3, Arg_3]) {O(n)} 3: evalfbb10in->evalfreturnin, Arg_4: min([2, Arg_4]) {O(n)} 10: evalfbb3in->evalfbb4in, Arg_0: 1 {O(1)} 10: evalfbb3in->evalfbb4in, Arg_1: 1 {O(1)} 10: evalfbb3in->evalfbb4in, Arg_2: 1 {O(1)} 10: evalfbb3in->evalfbb4in, Arg_3: 1 {O(1)} 10: evalfbb3in->evalfbb4in, Arg_4: 2 {O(1)} 8: evalfbb4in->evalfbb3in, Arg_0: 1 {O(1)} 8: evalfbb4in->evalfbb3in, Arg_1: 1 {O(1)} 8: evalfbb4in->evalfbb3in, Arg_2: 1 {O(1)} 8: evalfbb4in->evalfbb3in, Arg_3: 1 {O(1)} 8: evalfbb4in->evalfbb3in, Arg_4: 1 {O(1)} 9: evalfbb4in->evalfbb5in, Arg_0: 1 {O(1)} 9: evalfbb4in->evalfbb5in, Arg_1: 1 {O(1)} 9: evalfbb4in->evalfbb5in, Arg_2: 1 {O(1)} 9: evalfbb4in->evalfbb5in, Arg_3: 1 {O(1)} 9: evalfbb4in->evalfbb5in, Arg_4: 2 {O(1)} 11: evalfbb5in->evalfbb6in, Arg_0: 1 {O(1)} 11: evalfbb5in->evalfbb6in, Arg_1: 1 {O(1)} 11: evalfbb5in->evalfbb6in, Arg_2: 1 {O(1)} 11: evalfbb5in->evalfbb6in, Arg_3: 2 {O(1)} 11: evalfbb5in->evalfbb6in, Arg_4: 2 {O(1)} 6: evalfbb6in->evalfbb4in, Arg_0: 1 {O(1)} 6: evalfbb6in->evalfbb4in, Arg_1: 1 {O(1)} 6: evalfbb6in->evalfbb4in, Arg_2: 1 {O(1)} 6: evalfbb6in->evalfbb4in, Arg_3: 1 {O(1)} 6: evalfbb6in->evalfbb4in, Arg_4: 1 {O(1)} 7: evalfbb6in->evalfbb7in, Arg_0: 1 {O(1)} 7: evalfbb6in->evalfbb7in, Arg_1: 1 {O(1)} 7: evalfbb6in->evalfbb7in, Arg_2: 1 {O(1)} 7: evalfbb6in->evalfbb7in, Arg_3: 3 {O(1)} 7: evalfbb6in->evalfbb7in, Arg_4: 2 {O(1)} 12: evalfbb7in->evalfbb8in, Arg_0: 1 {O(1)} 12: evalfbb7in->evalfbb8in, Arg_1: 1 {O(1)} 12: evalfbb7in->evalfbb8in, Arg_2: 2 {O(1)} 12: evalfbb7in->evalfbb8in, Arg_3: 3 {O(1)} 12: evalfbb7in->evalfbb8in, Arg_4: 2 {O(1)} 4: evalfbb8in->evalfbb6in, Arg_0: 1 {O(1)} 4: evalfbb8in->evalfbb6in, Arg_1: 1 {O(1)} 4: evalfbb8in->evalfbb6in, Arg_2: 1 {O(1)} 4: evalfbb8in->evalfbb6in, Arg_3: 1 {O(1)} 4: evalfbb8in->evalfbb6in, Arg_4: min([2, min([2, Arg_4])]) {O(n)} 5: evalfbb8in->evalfbb9in, Arg_0: min([1, Arg_1]) {O(n)} 5: evalfbb8in->evalfbb9in, Arg_1: 1 {O(1)} 5: evalfbb8in->evalfbb9in, Arg_2: 1 {O(1)} 5: evalfbb8in->evalfbb9in, Arg_3: min([3, Arg_3]) {O(n)} 5: evalfbb8in->evalfbb9in, Arg_4: min([2, Arg_4]) {O(n)} 13: evalfbb9in->evalfbb10in, Arg_0: min([1, Arg_1]) {O(n)} 13: evalfbb9in->evalfbb10in, Arg_1: 0 {O(1)} 13: evalfbb9in->evalfbb10in, Arg_2: 1 {O(1)} 13: evalfbb9in->evalfbb10in, Arg_3: min([3, Arg_3]) {O(n)} 13: evalfbb9in->evalfbb10in, Arg_4: min([2, Arg_4]) {O(n)} 1: evalfentryin->evalfbb10in, Arg_0: Arg_1 {O(n)} 1: evalfentryin->evalfbb10in, Arg_1: Arg_0 {O(n)} 1: evalfentryin->evalfbb10in, Arg_2: Arg_2 {O(n)} 1: evalfentryin->evalfbb10in, Arg_3: Arg_3 {O(n)} 1: evalfentryin->evalfbb10in, Arg_4: Arg_4 {O(n)} 14: evalfreturnin->evalfstop, Arg_0: min([1, Arg_1]) {O(n)} 14: evalfreturnin->evalfstop, Arg_1: min([0, Arg_0]) {O(n)} 14: evalfreturnin->evalfstop, Arg_2: min([1, Arg_2]) {O(n)} 14: evalfreturnin->evalfstop, Arg_3: min([3, Arg_3]) {O(n)} 14: evalfreturnin->evalfstop, Arg_4: min([2, Arg_4]) {O(n)} 0: evalfstart->evalfentryin, Arg_0: Arg_0 {O(n)} 0: evalfstart->evalfentryin, Arg_1: Arg_1 {O(n)} 0: evalfstart->evalfentryin, Arg_2: Arg_2 {O(n)} 0: evalfstart->evalfentryin, Arg_3: Arg_3 {O(n)} 0: evalfstart->evalfentryin, Arg_4: Arg_4 {O(n)} `Upper: 2: evalfbb10in->evalfbb8in, Arg_0: Arg_1 {O(n)} 2: evalfbb10in->evalfbb8in, Arg_1: Arg_0 {O(n)} 2: evalfbb10in->evalfbb8in, Arg_2: 1 {O(1)} 2: evalfbb10in->evalfbb8in, Arg_3: max([Arg_3, Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1])]) {O(n^4)} 2: evalfbb10in->evalfbb8in, Arg_4: max([Arg_4, 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4])]) {O(n^7)} 3: evalfbb10in->evalfreturnin, Arg_0: Arg_1 {O(n)} 3: evalfbb10in->evalfreturnin, Arg_1: 0 {O(1)} 3: evalfbb10in->evalfreturnin, Arg_2: max([1, max([Arg_2, 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])])])]) {O(n^2)} 3: evalfbb10in->evalfreturnin, Arg_3: max([Arg_3, max([Arg_3, Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1])])]) {O(n^4)} 3: evalfbb10in->evalfreturnin, Arg_4: max([Arg_4, max([Arg_4, 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4])])]) {O(n^7)} 10: evalfbb3in->evalfbb4in, Arg_0: Arg_1 {O(n)} 10: evalfbb3in->evalfbb4in, Arg_1: Arg_0 {O(n)} 10: evalfbb3in->evalfbb4in, Arg_2: 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])]) {O(n^2)} 10: evalfbb3in->evalfbb4in, Arg_3: Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]) {O(n^4)} 10: evalfbb3in->evalfbb4in, Arg_4: 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4]) {O(n^7)} 8: evalfbb4in->evalfbb3in, Arg_0: Arg_1 {O(n)} 8: evalfbb4in->evalfbb3in, Arg_1: Arg_0 {O(n)} 8: evalfbb4in->evalfbb3in, Arg_2: 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])]) {O(n^2)} 8: evalfbb4in->evalfbb3in, Arg_3: Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]) {O(n^4)} 8: evalfbb4in->evalfbb3in, Arg_4: 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4]) {O(n^7)} 9: evalfbb4in->evalfbb5in, Arg_0: Arg_1 {O(n)} 9: evalfbb4in->evalfbb5in, Arg_1: Arg_0 {O(n)} 9: evalfbb4in->evalfbb5in, Arg_2: 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])]) {O(n^2)} 9: evalfbb4in->evalfbb5in, Arg_3: Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]) {O(n^4)} 9: evalfbb4in->evalfbb5in, Arg_4: 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4]) {O(n^7)} 11: evalfbb5in->evalfbb6in, Arg_0: Arg_1 {O(n)} 11: evalfbb5in->evalfbb6in, Arg_1: Arg_0 {O(n)} 11: evalfbb5in->evalfbb6in, Arg_2: 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])]) {O(n^2)} 11: evalfbb5in->evalfbb6in, Arg_3: Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]) {O(n^4)} 11: evalfbb5in->evalfbb6in, Arg_4: 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4]) {O(n^7)} 6: evalfbb6in->evalfbb4in, Arg_0: Arg_1 {O(n)} 6: evalfbb6in->evalfbb4in, Arg_1: Arg_0 {O(n)} 6: evalfbb6in->evalfbb4in, Arg_2: 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])]) {O(n^2)} 6: evalfbb6in->evalfbb4in, Arg_3: Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]) {O(n^4)} 6: evalfbb6in->evalfbb4in, Arg_4: 1 {O(1)} 7: evalfbb6in->evalfbb7in, Arg_0: Arg_1 {O(n)} 7: evalfbb6in->evalfbb7in, Arg_1: Arg_0 {O(n)} 7: evalfbb6in->evalfbb7in, Arg_2: 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])]) {O(n^2)} 7: evalfbb6in->evalfbb7in, Arg_3: Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]) {O(n^4)} 7: evalfbb6in->evalfbb7in, Arg_4: 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4]) {O(n^7)} 12: evalfbb7in->evalfbb8in, Arg_0: Arg_1 {O(n)} 12: evalfbb7in->evalfbb8in, Arg_1: Arg_0 {O(n)} 12: evalfbb7in->evalfbb8in, Arg_2: 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])]) {O(n^2)} 12: evalfbb7in->evalfbb8in, Arg_3: Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]) {O(n^4)} 12: evalfbb7in->evalfbb8in, Arg_4: 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4]) {O(n^7)} 4: evalfbb8in->evalfbb6in, Arg_0: Arg_1 {O(n)} 4: evalfbb8in->evalfbb6in, Arg_1: Arg_0 {O(n)} 4: evalfbb8in->evalfbb6in, Arg_2: 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])]) {O(n^2)} 4: evalfbb8in->evalfbb6in, Arg_3: Arg_0 {O(n)} 4: evalfbb8in->evalfbb6in, Arg_4: max([Arg_4, 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4])]) {O(n^7)} 5: evalfbb8in->evalfbb9in, Arg_0: Arg_1 {O(n)} 5: evalfbb8in->evalfbb9in, Arg_1: Arg_0 {O(n)} 5: evalfbb8in->evalfbb9in, Arg_2: max([1, 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])])]) {O(n^2)} 5: evalfbb8in->evalfbb9in, Arg_3: max([Arg_3, Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1])]) {O(n^4)} 5: evalfbb8in->evalfbb9in, Arg_4: max([Arg_4, 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4])]) {O(n^7)} 13: evalfbb9in->evalfbb10in, Arg_0: Arg_1 {O(n)} 13: evalfbb9in->evalfbb10in, Arg_1: Arg_0 {O(n)} 13: evalfbb9in->evalfbb10in, Arg_2: max([1, 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])])]) {O(n^2)} 13: evalfbb9in->evalfbb10in, Arg_3: max([Arg_3, Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1])]) {O(n^4)} 13: evalfbb9in->evalfbb10in, Arg_4: max([Arg_4, 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4])]) {O(n^7)} 1: evalfentryin->evalfbb10in, Arg_0: Arg_1 {O(n)} 1: evalfentryin->evalfbb10in, Arg_1: Arg_0 {O(n)} 1: evalfentryin->evalfbb10in, Arg_2: Arg_2 {O(n)} 1: evalfentryin->evalfbb10in, Arg_3: Arg_3 {O(n)} 1: evalfentryin->evalfbb10in, Arg_4: Arg_4 {O(n)} 14: evalfreturnin->evalfstop, Arg_0: Arg_1 {O(n)} 14: evalfreturnin->evalfstop, Arg_1: 0 {O(1)} 14: evalfreturnin->evalfstop, Arg_2: max([1, max([Arg_2, 1+max([0, 4*Arg_1])+max([0, 3*Arg_0*max([4*min([1, Arg_1]), 4*Arg_1])])])]) {O(n^2)} 14: evalfreturnin->evalfstop, Arg_3: max([Arg_3, max([Arg_3, Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1])])]) {O(n^4)} 14: evalfreturnin->evalfstop, Arg_4: max([Arg_4, max([Arg_4, 1+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([1, -1+2*(Arg_0+((max([0, 3*Arg_1])+max([0, 3*Arg_0*max([3*min([1, Arg_1]), 3*Arg_1])]))*max([0, Arg_0+Arg_1])+max([0, -10*Arg_3]))*max([0, Arg_1]))])+max([0, -9*Arg_4])])]) {O(n^7)} 0: evalfstart->evalfentryin, Arg_0: Arg_0 {O(n)} 0: evalfstart->evalfentryin, Arg_1: Arg_1 {O(n)} 0: evalfstart->evalfentryin, Arg_2: Arg_2 {O(n)} 0: evalfstart->evalfentryin, Arg_3: Arg_3 {O(n)} 0: evalfstart->evalfentryin, Arg_4: Arg_4 {O(n)} ---------------------------------------- (2) BOUNDS(1, nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * max(4, -2 + 6 * Arg_0 + 6 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * max(1, -1 + 2 * Arg_0 + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(-10 * Arg_3) * nat(Arg_1)) + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + nat(3 * Arg_1) * nat(Arg_0 + Arg_1) + nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * max(1, -1 + 2 * Arg_0 + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * max(4, -2 + 6 * Arg_0 + 6 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(3 * Arg_0 * max(3 * Arg_1, min(3, 3 * Arg_1))) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(-10 * Arg_3) * nat(Arg_1)) + 2 * nat(-10 * Arg_3) * nat(Arg_1) + nat(-10 * Arg_3) + nat(-10 * Arg_3) * max(1, -1 + 2 * Arg_0 + 2 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(3 * Arg_0 * max(min(3, 3 * Arg_1), 3 * Arg_1)) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 2 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(-10 * Arg_3) * max(4, -2 + 6 * Arg_0 + 6 * nat(3 * Arg_1) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(3 * Arg_0 * max(3 * Arg_1, min(3, 3 * Arg_1))) * nat(Arg_0 + Arg_1) * nat(Arg_1) + 6 * nat(-10 * Arg_3) * nat(Arg_1)) + nat(6 * Arg_0) + nat(-2 * Arg_4) + nat(3 * Arg_0 * max(4 * Arg_1, min(4, 4 * Arg_1))) + nat(4 * Arg_1) + max(1, 2 + Arg_0) + nat(-9 * Arg_4) + max(3, 3 + 6 * Arg_1) + nat(6 * Arg_0 * max(3 * Arg_1, min(3, 3 * Arg_1)))) ---------------------------------------- (3) Loat Proof (FINISHED) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: evalfstart 0: evalfstart -> evalfentryin : [], cost: 1 1: evalfentryin -> evalfbb10in : A'=B, B'=A, [], cost: 1 2: evalfbb10in -> evalfbb8in : C'=1, [ B>=1 ], cost: 1 3: evalfbb10in -> evalfreturnin : [ 0>=B ], cost: 1 4: evalfbb8in -> evalfbb6in : D'=B, [ A>=C ], cost: 1 5: evalfbb8in -> evalfbb9in : [ C>=1+A ], cost: 1 6: evalfbb6in -> evalfbb4in : E'=1, [ C+B>=D ], cost: 1 7: evalfbb6in -> evalfbb7in : [ D>=1+C+B ], cost: 1 8: evalfbb4in -> evalfbb3in : [ D>=E ], cost: 1 9: evalfbb4in -> evalfbb5in : [ E>=1+D ], cost: 1 10: evalfbb3in -> evalfbb4in : E'=1+E, [], cost: 1 11: evalfbb5in -> evalfbb6in : D'=1+D, [], cost: 1 12: evalfbb7in -> evalfbb8in : C'=1+C, [], cost: 1 13: evalfbb9in -> evalfbb10in : B'=-1+B, [], cost: 1 14: evalfreturnin -> evalfstop : [], cost: 1 Removed unreachable and leaf rules: Start location: evalfstart 0: evalfstart -> evalfentryin : [], cost: 1 1: evalfentryin -> evalfbb10in : A'=B, B'=A, [], cost: 1 2: evalfbb10in -> evalfbb8in : C'=1, [ B>=1 ], cost: 1 4: evalfbb8in -> evalfbb6in : D'=B, [ A>=C ], cost: 1 5: evalfbb8in -> evalfbb9in : [ C>=1+A ], cost: 1 6: evalfbb6in -> evalfbb4in : E'=1, [ C+B>=D ], cost: 1 7: evalfbb6in -> evalfbb7in : [ D>=1+C+B ], cost: 1 8: evalfbb4in -> evalfbb3in : [ D>=E ], cost: 1 9: evalfbb4in -> evalfbb5in : [ E>=1+D ], cost: 1 10: evalfbb3in -> evalfbb4in : E'=1+E, [], cost: 1 11: evalfbb5in -> evalfbb6in : D'=1+D, [], cost: 1 12: evalfbb7in -> evalfbb8in : C'=1+C, [], cost: 1 13: evalfbb9in -> evalfbb10in : B'=-1+B, [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 2: evalfbb10in -> evalfbb8in : C'=1, [ B>=1 ], cost: 1 4: evalfbb8in -> evalfbb6in : D'=B, [ A>=C ], cost: 1 16: evalfbb8in -> evalfbb10in : B'=-1+B, [ C>=1+A ], cost: 2 6: evalfbb6in -> evalfbb4in : E'=1, [ C+B>=D ], cost: 1 17: evalfbb6in -> evalfbb8in : C'=1+C, [ D>=1+C+B ], cost: 2 18: evalfbb4in -> evalfbb4in : E'=1+E, [ D>=E ], cost: 2 19: evalfbb4in -> evalfbb6in : D'=1+D, [ E>=1+D ], cost: 2 Accelerating simple loops of location 5. Accelerating the following rules: 18: evalfbb4in -> evalfbb4in : E'=1+E, [ D>=E ], cost: 2 Accelerated rule 18 with metering function 1+D-E, yielding the new rule 20. Removing the simple loops: 18. Accelerated all simple loops using metering functions (where possible): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 2: evalfbb10in -> evalfbb8in : C'=1, [ B>=1 ], cost: 1 4: evalfbb8in -> evalfbb6in : D'=B, [ A>=C ], cost: 1 16: evalfbb8in -> evalfbb10in : B'=-1+B, [ C>=1+A ], cost: 2 6: evalfbb6in -> evalfbb4in : E'=1, [ C+B>=D ], cost: 1 17: evalfbb6in -> evalfbb8in : C'=1+C, [ D>=1+C+B ], cost: 2 19: evalfbb4in -> evalfbb6in : D'=1+D, [ E>=1+D ], cost: 2 20: evalfbb4in -> evalfbb4in : E'=1+D, [ D>=E ], cost: 2+2*D-2*E Chained accelerated rules (with incoming rules): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 2: evalfbb10in -> evalfbb8in : C'=1, [ B>=1 ], cost: 1 4: evalfbb8in -> evalfbb6in : D'=B, [ A>=C ], cost: 1 16: evalfbb8in -> evalfbb10in : B'=-1+B, [ C>=1+A ], cost: 2 6: evalfbb6in -> evalfbb4in : E'=1, [ C+B>=D ], cost: 1 17: evalfbb6in -> evalfbb8in : C'=1+C, [ D>=1+C+B ], cost: 2 21: evalfbb6in -> evalfbb4in : E'=1+D, [ C+B>=D && D>=1 ], cost: 1+2*D 19: evalfbb4in -> evalfbb6in : D'=1+D, [ E>=1+D ], cost: 2 Eliminated locations (on tree-shaped paths): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 2: evalfbb10in -> evalfbb8in : C'=1, [ B>=1 ], cost: 1 4: evalfbb8in -> evalfbb6in : D'=B, [ A>=C ], cost: 1 16: evalfbb8in -> evalfbb10in : B'=-1+B, [ C>=1+A ], cost: 2 17: evalfbb6in -> evalfbb8in : C'=1+C, [ D>=1+C+B ], cost: 2 22: evalfbb6in -> evalfbb6in : D'=1+D, E'=1, [ C+B>=D && 1>=1+D ], cost: 3 23: evalfbb6in -> evalfbb6in : D'=1+D, E'=1+D, [ C+B>=D && D>=1 ], cost: 3+2*D Accelerating simple loops of location 4. Accelerating the following rules: 22: evalfbb6in -> evalfbb6in : D'=1+D, E'=1, [ C+B>=D && 1>=1+D ], cost: 3 23: evalfbb6in -> evalfbb6in : D'=1+D, E'=1+D, [ C+B>=D && D>=1 ], cost: 3+2*D Accelerated rule 22 with backward acceleration, yielding the new rule 24. Accelerated rule 22 with backward acceleration, yielding the new rule 25. Accelerated rule 23 with metering function 1+C-D+B, yielding the new rule 26. Removing the simple loops: 22 23. Accelerated all simple loops using metering functions (where possible): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 2: evalfbb10in -> evalfbb8in : C'=1, [ B>=1 ], cost: 1 4: evalfbb8in -> evalfbb6in : D'=B, [ A>=C ], cost: 1 16: evalfbb8in -> evalfbb10in : B'=-1+B, [ C>=1+A ], cost: 2 17: evalfbb6in -> evalfbb8in : C'=1+C, [ D>=1+C+B ], cost: 2 24: evalfbb6in -> evalfbb6in : D'=1+C+B, E'=1, [ C+B>=D && 1>=1+D && 1>=1+C+B ], cost: 3+3*C-3*D+3*B 25: evalfbb6in -> evalfbb6in : D'=1, E'=1, [ C+B>=D && 1>=1+D && C+B>=0 ], cost: 3-3*D 26: evalfbb6in -> evalfbb6in : D'=1+C+B, E'=1+C+B, [ C+B>=D && D>=1 ], cost: 2+2*C+(1+C-D+B)^2-2*D+2*(1+C-D+B)*D+2*B Chained accelerated rules (with incoming rules): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 2: evalfbb10in -> evalfbb8in : C'=1, [ B>=1 ], cost: 1 4: evalfbb8in -> evalfbb6in : D'=B, [ A>=C ], cost: 1 16: evalfbb8in -> evalfbb10in : B'=-1+B, [ C>=1+A ], cost: 2 27: evalfbb8in -> evalfbb6in : D'=1+C+B, E'=1, [ A>=C && C+B>=B && 1>=1+B && 1>=1+C+B ], cost: 4+3*C 28: evalfbb8in -> evalfbb6in : D'=1, E'=1, [ A>=C && C+B>=B && 1>=1+B && C+B>=0 ], cost: 4-3*B 29: evalfbb8in -> evalfbb6in : D'=1+C+B, E'=1+C+B, [ A>=C && C+B>=B && B>=1 ], cost: 3+2*C+2*(1+C)*B+(1+C)^2 17: evalfbb6in -> evalfbb8in : C'=1+C, [ D>=1+C+B ], cost: 2 Eliminated locations (on tree-shaped paths): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 2: evalfbb10in -> evalfbb8in : C'=1, [ B>=1 ], cost: 1 16: evalfbb8in -> evalfbb10in : B'=-1+B, [ C>=1+A ], cost: 2 30: evalfbb8in -> evalfbb8in : C'=1+C, D'=B, [ A>=C && B>=1+C+B ], cost: 3 31: evalfbb8in -> evalfbb8in : C'=1+C, D'=1+C+B, E'=1, [ A>=C && C+B>=B && 1>=1+B && 1>=1+C+B ], cost: 6+3*C 32: evalfbb8in -> evalfbb8in : C'=1+C, D'=1, E'=1, [ A>=C && C+B>=B && 1>=1+B && C+B>=0 && 1>=1+C+B ], cost: 6-3*B 33: evalfbb8in -> evalfbb8in : C'=1+C, D'=1+C+B, E'=1+C+B, [ A>=C && C+B>=B && B>=1 ], cost: 5+2*C+2*(1+C)*B+(1+C)^2 Accelerating simple loops of location 3. Simplified some of the simple loops (and removed duplicate rules). Accelerating the following rules: 30: evalfbb8in -> evalfbb8in : C'=1+C, D'=B, [ A>=C && B>=1+C+B ], cost: 3 31: evalfbb8in -> evalfbb8in : C'=1+C, D'=1+C+B, E'=1, [ A>=C && C+B>=B && 1>=1+B && 1>=1+C+B ], cost: 6+3*C 32: evalfbb8in -> evalfbb8in : C'=1+C, D'=1, E'=1, [ A>=C && C+B>=B && 1>=1+B && -C-B==0 ], cost: 6-3*B 33: evalfbb8in -> evalfbb8in : C'=1+C, D'=1+C+B, E'=1+C+B, [ A>=C && C+B>=B && B>=1 ], cost: 5+2*C+2*(1+C)*B+(1+C)^2 Accelerated rule 30 with backward acceleration, yielding the new rule 34. Accelerated rule 30 with backward acceleration, yielding the new rule 35. Accelerated rule 31 with backward acceleration, yielding the new rule 36. Accelerated rule 31 with backward acceleration, yielding the new rule 37. Accelerated rule 32 with metering function -C-B, yielding the new rule 38. Accelerated rule 33 with metering function 1-C+A, yielding the new rule 39. Nested simple loops 32 (outer loop) and 35 (inner loop) with metering function -B, resulting in the new rules: 40. Removing the simple loops: 30 31 32 33. Accelerated all simple loops using metering functions (where possible): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 2: evalfbb10in -> evalfbb8in : C'=1, [ B>=1 ], cost: 1 16: evalfbb8in -> evalfbb10in : B'=-1+B, [ C>=1+A ], cost: 2 34: evalfbb8in -> evalfbb8in : C'=1+A, D'=B, [ A>=C && B>=1+C+B && B>=1+A+B ], cost: 3-3*C+3*A 35: evalfbb8in -> evalfbb8in : C'=0, D'=B, [ A>=C && B>=1+C+B && A>=-1 ], cost: -3*C 36: evalfbb8in -> evalfbb8in : C'=1+A, D'=1+A+B, E'=1, [ A>=C && C+B>=B && 1>=1+B && 1>=1+C+B && A+B>=B && 1>=1+A+B ], cost: 9/2-3*(-1+C-A)*C-9/2*C+3/2*(-1+C-A)^2+9/2*A 37: evalfbb8in -> evalfbb8in : C'=1-B, D'=1, E'=1, [ A>=C && C+B>=B && 1>=1+B && 1>=1+C+B && A>=-B ], cost: 9/2-9/2*C+3/2*(-1+C+B)^2-3*C*(-1+C+B)-9/2*B 38: evalfbb8in -> evalfbb8in : C'=-B, D'=1, E'=1, [ A>=C && C+B>=B && 1>=1+B && -C-B==0 && -C-B>=1 ], cost: -6*C+3*(C+B)*B-6*B 39: evalfbb8in -> evalfbb8in : C'=1+A, D'=1+A+B, E'=1+A+B, [ A>=C && C+B>=B && B>=1 ], cost: 25/6-3*(-1+C-A)*C-(-1+C-A)*C^2-25/6*C-(-1+C-A)*B+3/2*(-1+C-A)^2+25/6*A+(-1+C-A)^2*B-1/3*(-1+C-A)^3-2*(-1+C-A)*C*B+(-1+C-A)^2*C 40: evalfbb8in -> evalfbb8in : C'=1, D'=1, E'=1, [ A>=C && B>=1+C+B && A>=0 && -B==0 && -B>=1 ], cost: 3*B^2-3*B Chained accelerated rules (with incoming rules): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 2: evalfbb10in -> evalfbb8in : C'=1, [ B>=1 ], cost: 1 41: evalfbb10in -> evalfbb8in : C'=1+A, D'=1+A+B, E'=1+A+B, [ B>=1 && A>=1 ], cost: 1+A^2*B+49/6*A+3*A*B+5/2*A^2+1/3*A^3 16: evalfbb8in -> evalfbb10in : B'=-1+B, [ C>=1+A ], cost: 2 Eliminated locations (on tree-shaped paths): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 42: evalfbb10in -> evalfbb10in : B'=-1+B, C'=1, [ B>=1 && 1>=1+A ], cost: 3 43: evalfbb10in -> evalfbb10in : B'=-1+B, C'=1+A, D'=1+A+B, E'=1+A+B, [ B>=1 && A>=1 ], cost: 3+A^2*B+49/6*A+3*A*B+5/2*A^2+1/3*A^3 Accelerating simple loops of location 2. Accelerating the following rules: 42: evalfbb10in -> evalfbb10in : B'=-1+B, C'=1, [ B>=1 && 1>=1+A ], cost: 3 43: evalfbb10in -> evalfbb10in : B'=-1+B, C'=1+A, D'=1+A+B, E'=1+A+B, [ B>=1 && A>=1 ], cost: 3+A^2*B+49/6*A+3*A*B+5/2*A^2+1/3*A^3 Accelerated rule 42 with metering function B, yielding the new rule 44. Accelerated rule 43 with metering function B, yielding the new rule 45. Removing the simple loops: 42 43. Accelerated all simple loops using metering functions (where possible): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 44: evalfbb10in -> evalfbb10in : B'=0, C'=1, [ B>=1 && 1>=1+A ], cost: 3*B 45: evalfbb10in -> evalfbb10in : B'=0, C'=1+A, D'=2+A, E'=2+A, [ B>=1 && A>=1 ], cost: 3*A^2*B+1/2*A^2*B^2+1/3*A^3*B+3/2*A*B^2+29/3*A*B+3*B Chained accelerated rules (with incoming rules): Start location: evalfstart 15: evalfstart -> evalfbb10in : A'=B, B'=A, [], cost: 2 46: evalfstart -> evalfbb10in : A'=B, B'=0, C'=1, [ A>=1 && 1>=1+B ], cost: 2+3*A 47: evalfstart -> evalfbb10in : A'=B, B'=0, C'=1+B, D'=2+B, E'=2+B, [ A>=1 && B>=1 ], cost: 2+3/2*A^2*B+1/2*A^2*B^2+1/3*A*B^3+3*A*B^2+3*A+29/3*A*B Removed unreachable locations (and leaf rules with constant cost): Start location: evalfstart 46: evalfstart -> evalfbb10in : A'=B, B'=0, C'=1, [ A>=1 && 1>=1+B ], cost: 2+3*A 47: evalfstart -> evalfbb10in : A'=B, B'=0, C'=1+B, D'=2+B, E'=2+B, [ A>=1 && B>=1 ], cost: 2+3/2*A^2*B+1/2*A^2*B^2+1/3*A*B^3+3*A*B^2+3*A+29/3*A*B ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: evalfstart 46: evalfstart -> evalfbb10in : A'=B, B'=0, C'=1, [ A>=1 && 1>=1+B ], cost: 2+3*A 47: evalfstart -> evalfbb10in : A'=B, B'=0, C'=1+B, D'=2+B, E'=2+B, [ A>=1 && B>=1 ], cost: 2+3/2*A^2*B+1/2*A^2*B^2+1/3*A*B^3+3*A*B^2+3*A+29/3*A*B Computing asymptotic complexity for rule 46 Solved the limit problem by the following transformations: Created initial limit problem: 1-B (+/+!), A (+/+!), 2+3*A (+) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {A==n,B==0} resulting limit problem: [solved] Solution: A / n B / 0 Resulting cost 2+3*n has complexity: Poly(n^1) Found new complexity Poly(n^1). Computing asymptotic complexity for rule 47 Solved the limit problem by the following transformations: Created initial limit problem: 2+3/2*A^2*B+1/2*A^2*B^2+1/3*A*B^3+3*A*B^2+3*A+29/3*A*B (+), A (+/+!), 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: A / n B / n Resulting cost 2+9/2*n^3+29/3*n^2+5/6*n^4+3*n has complexity: Poly(n^4) Found new complexity Poly(n^4). Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Poly(n^4) Cpx degree: 4 Solved cost: 2+9/2*n^3+29/3*n^2+5/6*n^4+3*n Rule cost: 2+3/2*A^2*B+1/2*A^2*B^2+1/3*A*B^3+3*A*B^2+3*A+29/3*A*B Rule guard: [ A>=1 && B>=1 ] WORST_CASE(Omega(n^4),?) ---------------------------------------- (4) BOUNDS(n^4, INF)