11.39/8.13 WORST_CASE(Omega(n^1), O(n^2)) 11.39/8.14 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 11.39/8.14 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 11.39/8.14 11.39/8.14 11.39/8.14 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^1, nat(-2 + 2 * Arg_0) + nat(Arg_0) + max(2 * Arg_0, 4) + max(3, 3 + Arg_0 * max(2 * Arg_0, 4) + min(-4, -2 * Arg_0)) + max(1, Arg_0)). 11.39/8.14 11.39/8.14 (0) CpxIntTrs 11.39/8.14 (1) Koat2 Proof [FINISHED, 6353 ms] 11.39/8.14 (2) BOUNDS(1, nat(-2 + 2 * Arg_0) + nat(Arg_0) + max(2 * Arg_0, 4) + max(3, 3 + Arg_0 * max(2 * Arg_0, 4) + min(-4, -2 * Arg_0)) + max(1, Arg_0)) 11.39/8.14 (3) Loat Proof [FINISHED, 911 ms] 11.39/8.14 (4) BOUNDS(n^1, INF) 11.39/8.14 11.39/8.14 11.39/8.14 ---------------------------------------- 11.39/8.14 11.39/8.14 (0) 11.39/8.14 Obligation: 11.39/8.14 Complexity Int TRS consisting of the following rules: 11.39/8.14 start(A, B, C, D, E, F, G, H, I, J) -> Com_1(stop(A, B, C, D, E, F, G, H, 1, J)) :|: 1 >= A && B >= C && B <= C && D >= E && D <= E && F >= A && F <= A && G >= H && G <= H && I >= J && I <= J 11.39/8.14 start(A, B, C, D, E, F, G, H, I, J) -> Com_1(lbl31(A, K, C, D, E, F, G, H, 1, J)) :|: A >= 2 && B >= C && B <= C && D >= E && D <= E && F >= A && F <= A && G >= H && G <= H && I >= J && I <= J 11.39/8.14 lbl43(A, B, C, D, E, F, G, H, I, J) -> Com_1(lbl43(A, B, C, D, E, F, G - 1, H, I, J)) :|: G >= 0 && I >= G + 2 && G + 1 >= 0 && A >= I + 1 && F >= A && F <= A 11.39/8.14 lbl43(A, B, C, D, E, F, G, H, I, J) -> Com_1(lbl13(A, B, C, I, E, F, G, H, 1 + I, J)) :|: I >= G + 2 && G + 1 >= 0 && A >= I + 1 && F >= A && F <= A 11.39/8.14 lbl31(A, B, C, D, E, F, G, H, I, J) -> Com_1(lbl43(A, B, C, D, E, F, I - 2, H, I, J)) :|: I >= 1 && A >= I + 1 && F >= A && F <= A 11.39/8.14 lbl31(A, B, C, D, E, F, G, H, I, J) -> Com_1(lbl13(A, B, C, I, E, F, I - 1, H, 1 + I, J)) :|: I >= 1 && A >= I + 1 && F >= A && F <= A 11.39/8.14 lbl13(A, B, C, D, E, F, G, H, I, J) -> Com_1(stop(A, B, C, D, E, F, G, H, I, J)) :|: G + A >= 2 && G + 1 >= 0 && A >= 2 + G && F >= A && F <= A && I >= A && I <= A && D + 1 >= A && D + 1 <= A 11.39/8.14 lbl13(A, B, C, D, E, F, G, H, I, J) -> Com_1(lbl31(A, K, C, D, E, F, G, H, I, J)) :|: A >= D + 2 && G + D >= 1 && G + 1 >= 0 && A >= D + 1 && D >= G + 1 && F >= A && F <= A && I >= D + 1 && I <= D + 1 11.39/8.14 start0(A, B, C, D, E, F, G, H, I, J) -> Com_1(start(A, C, C, E, E, A, H, H, J, J)) :|: TRUE 11.39/8.14 11.39/8.14 The start-symbols are:[start0_10] 11.39/8.14 11.39/8.14 11.39/8.14 ---------------------------------------- 11.39/8.14 11.39/8.14 (1) Koat2 Proof (FINISHED) 11.39/8.14 YES( ?, 3+max([0, (-1+Arg_0)*max([4, 2*Arg_0])])+max([1, Arg_0])+max([0, -1+Arg_0])+max([0, Arg_0])+max([0, -1+Arg_0])+max([4, 2*Arg_0]) {O(n^2)}) 11.39/8.14 11.39/8.14 11.39/8.14 11.39/8.14 Initial Complexity Problem: 11.39/8.14 11.39/8.14 Start: start0 11.39/8.14 11.39/8.14 Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5, Arg_6, Arg_7, Arg_8, Arg_9 11.39/8.14 11.39/8.14 Temp_Vars: K 11.39/8.14 11.39/8.14 Locations: lbl13, lbl31, lbl43, start, start0, stop 11.39/8.14 11.39/8.14 Transitions: 11.39/8.14 11.39/8.14 lbl13(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9) -> lbl31(Arg_0,K,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9):|:Arg_8 <= Arg_5 && Arg_8 <= 1+Arg_3 && Arg_8 <= Arg_0 && 2 <= Arg_8 && 2+Arg_6 <= Arg_8 && 4 <= Arg_5+Arg_8 && 3 <= Arg_3+Arg_8 && 1+Arg_3 <= Arg_8 && 4 <= Arg_0+Arg_8 && 2+Arg_6 <= Arg_5 && 1+Arg_6 <= Arg_3 && 2+Arg_6 <= Arg_0 && Arg_5 <= Arg_0 && 2 <= Arg_5 && 3 <= Arg_3+Arg_5 && 1+Arg_3 <= Arg_5 && 4 <= Arg_0+Arg_5 && Arg_0 <= Arg_5 && 1+Arg_3 <= Arg_0 && 1 <= Arg_3 && 3 <= Arg_0+Arg_3 && 2 <= Arg_0 && Arg_3+2 <= Arg_0 && 1 <= Arg_6+Arg_3 && 0 <= 1+Arg_6 && Arg_3+1 <= Arg_0 && Arg_6+1 <= Arg_3 && Arg_5 <= Arg_0 && Arg_0 <= Arg_5 && Arg_8 <= Arg_3+1 && Arg_3+1 <= Arg_8 11.39/8.14 11.39/8.14 lbl13(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9) -> stop(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9):|:Arg_8 <= Arg_5 && Arg_8 <= 1+Arg_3 && Arg_8 <= Arg_0 && 2 <= Arg_8 && 2+Arg_6 <= Arg_8 && 4 <= Arg_5+Arg_8 && 3 <= Arg_3+Arg_8 && 1+Arg_3 <= Arg_8 && 4 <= Arg_0+Arg_8 && 2+Arg_6 <= Arg_5 && 1+Arg_6 <= Arg_3 && 2+Arg_6 <= Arg_0 && Arg_5 <= Arg_0 && 2 <= Arg_5 && 3 <= Arg_3+Arg_5 && 1+Arg_3 <= Arg_5 && 4 <= Arg_0+Arg_5 && Arg_0 <= Arg_5 && 1+Arg_3 <= Arg_0 && 1 <= Arg_3 && 3 <= Arg_0+Arg_3 && 2 <= Arg_0 && 2 <= Arg_6+Arg_0 && 0 <= 1+Arg_6 && 2+Arg_6 <= Arg_0 && Arg_5 <= Arg_0 && Arg_0 <= Arg_5 && Arg_8 <= Arg_0 && Arg_0 <= Arg_8 && Arg_3+1 <= Arg_0 && Arg_0 <= Arg_3+1 11.39/8.14 11.39/8.14 lbl31(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9) -> lbl13(Arg_0,Arg_1,Arg_2,Arg_8,Arg_4,Arg_5,Arg_8-1,Arg_7,1+Arg_8,Arg_9):|:1+Arg_8 <= Arg_5 && 1+Arg_8 <= Arg_0 && 1 <= Arg_8 && 3 <= Arg_5+Arg_8 && 3 <= Arg_0+Arg_8 && Arg_5 <= Arg_0 && 2 <= Arg_5 && 4 <= Arg_0+Arg_5 && Arg_0 <= Arg_5 && 2 <= Arg_0 && 1 <= Arg_8 && Arg_8+1 <= Arg_0 && Arg_5 <= Arg_0 && Arg_0 <= Arg_5 11.39/8.14 11.39/8.14 lbl31(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9) -> lbl43(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_8-2,Arg_7,Arg_8,Arg_9):|:1+Arg_8 <= Arg_5 && 1+Arg_8 <= Arg_0 && 1 <= Arg_8 && 3 <= Arg_5+Arg_8 && 3 <= Arg_0+Arg_8 && Arg_5 <= Arg_0 && 2 <= Arg_5 && 4 <= Arg_0+Arg_5 && Arg_0 <= Arg_5 && 2 <= Arg_0 && 1 <= Arg_8 && Arg_8+1 <= Arg_0 && Arg_5 <= Arg_0 && Arg_0 <= Arg_5 11.39/8.14 11.39/8.14 lbl43(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9) -> lbl13(Arg_0,Arg_1,Arg_2,Arg_8,Arg_4,Arg_5,Arg_6,Arg_7,1+Arg_8,Arg_9):|:1+Arg_8 <= Arg_5 && 1+Arg_8 <= Arg_0 && 1 <= Arg_8 && 0 <= Arg_6+Arg_8 && 2+Arg_6 <= Arg_8 && 3 <= Arg_5+Arg_8 && 3 <= Arg_0+Arg_8 && 3+Arg_6 <= Arg_5 && 3+Arg_6 <= Arg_0 && 0 <= 1+Arg_6 && 1 <= Arg_5+Arg_6 && 1 <= Arg_0+Arg_6 && Arg_5 <= Arg_0 && 2 <= Arg_5 && 4 <= Arg_0+Arg_5 && Arg_0 <= Arg_5 && 2 <= Arg_0 && Arg_6+2 <= Arg_8 && 0 <= 1+Arg_6 && Arg_8+1 <= Arg_0 && Arg_5 <= Arg_0 && Arg_0 <= Arg_5 11.39/8.14 11.39/8.14 lbl43(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9) -> lbl43(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6-1,Arg_7,Arg_8,Arg_9):|:1+Arg_8 <= Arg_5 && 1+Arg_8 <= Arg_0 && 1 <= Arg_8 && 0 <= Arg_6+Arg_8 && 2+Arg_6 <= Arg_8 && 3 <= Arg_5+Arg_8 && 3 <= Arg_0+Arg_8 && 3+Arg_6 <= Arg_5 && 3+Arg_6 <= Arg_0 && 0 <= 1+Arg_6 && 1 <= Arg_5+Arg_6 && 1 <= Arg_0+Arg_6 && Arg_5 <= Arg_0 && 2 <= Arg_5 && 4 <= Arg_0+Arg_5 && Arg_0 <= Arg_5 && 2 <= Arg_0 && 0 <= Arg_6 && Arg_6+2 <= Arg_8 && 0 <= 1+Arg_6 && Arg_8+1 <= Arg_0 && Arg_5 <= Arg_0 && Arg_0 <= Arg_5 11.39/8.14 11.39/8.14 start(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9) -> lbl31(Arg_0,K,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,1,Arg_9):|:Arg_9 <= Arg_8 && Arg_8 <= Arg_9 && Arg_7 <= Arg_6 && Arg_6 <= Arg_7 && Arg_5 <= Arg_0 && Arg_0 <= Arg_5 && Arg_4 <= Arg_3 && Arg_3 <= Arg_4 && Arg_2 <= Arg_1 && Arg_1 <= Arg_2 && 2 <= Arg_0 && Arg_1 <= Arg_2 && Arg_2 <= Arg_1 && Arg_3 <= Arg_4 && Arg_4 <= Arg_3 && Arg_5 <= Arg_0 && Arg_0 <= Arg_5 && Arg_6 <= Arg_7 && Arg_7 <= Arg_6 && Arg_8 <= Arg_9 && Arg_9 <= Arg_8 11.39/8.14 11.39/8.14 start(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9) -> stop(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,1,Arg_9):|:Arg_9 <= Arg_8 && Arg_8 <= Arg_9 && Arg_7 <= Arg_6 && Arg_6 <= Arg_7 && Arg_5 <= Arg_0 && Arg_0 <= Arg_5 && Arg_4 <= Arg_3 && Arg_3 <= Arg_4 && Arg_2 <= Arg_1 && Arg_1 <= Arg_2 && Arg_0 <= 1 && Arg_1 <= Arg_2 && Arg_2 <= Arg_1 && Arg_3 <= Arg_4 && Arg_4 <= Arg_3 && Arg_5 <= Arg_0 && Arg_0 <= Arg_5 && Arg_6 <= Arg_7 && Arg_7 <= Arg_6 && Arg_8 <= Arg_9 && Arg_9 <= Arg_8 11.39/8.14 11.39/8.14 start0(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7,Arg_8,Arg_9) -> start(Arg_0,Arg_2,Arg_2,Arg_4,Arg_4,Arg_0,Arg_7,Arg_7,Arg_9,Arg_9):|: 11.39/8.14 11.39/8.14 11.39/8.14 11.39/8.14 Timebounds: 11.39/8.14 11.39/8.14 Overall timebound: 3+max([0, (-1+Arg_0)*max([4, 2*Arg_0])])+max([1, Arg_0])+max([0, -1+Arg_0])+max([0, Arg_0])+max([0, -1+Arg_0])+max([4, 2*Arg_0]) {O(n^2)} 11.39/8.14 11.39/8.14 6: lbl13->stop: 1 {O(1)} 11.39/8.14 11.39/8.14 7: lbl13->lbl31: max([0, -1+Arg_0]) {O(n)} 11.39/8.14 11.39/8.14 4: lbl31->lbl43: max([0, Arg_0]) {O(n)} 11.39/8.14 11.39/8.14 5: lbl31->lbl13: max([0, -1+Arg_0]) {O(n)} 11.39/8.14 11.39/8.14 2: lbl43->lbl43: max([0, (-1+Arg_0)*max([4, 2*Arg_0])])+max([4, 2*Arg_0]) {O(n^2)} 11.39/8.14 11.39/8.14 3: lbl43->lbl13: max([0, -1+Arg_0]) {O(n)} 11.39/8.14 11.39/8.14 0: start->stop: 1 {O(1)} 11.39/8.14 11.39/8.14 1: start->lbl31: 1 {O(1)} 11.39/8.14 11.39/8.14 8: start0->start: 1 {O(1)} 11.39/8.14 11.39/8.14 11.39/8.14 11.39/8.14 Costbounds: 11.39/8.14 11.39/8.14 Overall costbound: 3+max([0, (-1+Arg_0)*max([4, 2*Arg_0])])+max([1, Arg_0])+max([0, -1+Arg_0])+max([0, Arg_0])+max([0, -1+Arg_0])+max([4, 2*Arg_0]) {O(n^2)} 11.39/8.14 11.39/8.14 6: lbl13->stop: 1 {O(1)} 11.39/8.14 11.39/8.14 7: lbl13->lbl31: max([0, -1+Arg_0]) {O(n)} 11.39/8.14 11.39/8.14 4: lbl31->lbl43: max([0, Arg_0]) {O(n)} 11.39/8.14 11.39/8.14 5: lbl31->lbl13: max([0, -1+Arg_0]) {O(n)} 11.39/8.14 11.39/8.14 2: lbl43->lbl43: max([0, (-1+Arg_0)*max([4, 2*Arg_0])])+max([4, 2*Arg_0]) {O(n^2)} 11.39/8.14 11.39/8.14 3: lbl43->lbl13: max([0, -1+Arg_0]) {O(n)} 11.39/8.14 11.39/8.14 0: start->stop: 1 {O(1)} 11.39/8.14 11.39/8.14 1: start->lbl31: 1 {O(1)} 11.39/8.14 11.39/8.14 8: start0->start: 1 {O(1)} 11.39/8.14 11.39/8.14 11.39/8.14 11.39/8.14 Sizebounds: 11.39/8.14 11.39/8.14 `Lower: 11.39/8.14 11.39/8.14 6: lbl13->stop, Arg_0: 2 {O(1)} 11.39/8.14 11.39/8.14 6: lbl13->stop, Arg_2: Arg_2 {O(n)} 11.39/8.14 11.39/8.14 6: lbl13->stop, Arg_3: 1 {O(1)} 11.39/8.14 11.39/8.14 6: lbl13->stop, Arg_4: Arg_4 {O(n)} 11.39/8.14 11.39/8.14 6: lbl13->stop, Arg_5: 2 {O(1)} 11.39/8.14 11.39/8.14 6: lbl13->stop, Arg_6: -1 {O(1)} 11.39/8.14 11.39/8.14 6: lbl13->stop, Arg_7: Arg_7 {O(n)} 11.39/8.14 11.39/8.14 6: lbl13->stop, Arg_8: 2 {O(1)} 11.39/8.14 11.39/8.14 6: lbl13->stop, Arg_9: Arg_9 {O(n)} 11.39/8.14 11.39/8.14 7: lbl13->lbl31, Arg_0: 3 {O(1)} 11.39/8.14 11.39/8.14 7: lbl13->lbl31, Arg_2: Arg_2 {O(n)} 11.39/8.14 11.39/8.14 7: lbl13->lbl31, Arg_3: 1 {O(1)} 11.39/8.14 11.39/8.14 7: lbl13->lbl31, Arg_4: Arg_4 {O(n)} 11.39/8.14 11.39/8.14 7: lbl13->lbl31, Arg_5: 3 {O(1)} 11.39/8.14 11.39/8.14 7: lbl13->lbl31, Arg_6: -1 {O(1)} 11.39/8.14 11.39/8.14 7: lbl13->lbl31, Arg_7: Arg_7 {O(n)} 11.39/8.14 11.39/8.14 7: lbl13->lbl31, Arg_8: 2 {O(1)} 11.39/8.14 11.39/8.14 7: lbl13->lbl31, Arg_9: Arg_9 {O(n)} 11.39/8.14 11.39/8.14 4: lbl31->lbl43, Arg_0: 2 {O(1)} 11.39/8.14 11.39/8.14 4: lbl31->lbl43, Arg_2: Arg_2 {O(n)} 11.39/8.14 11.39/8.14 4: lbl31->lbl43, Arg_3: min([1, Arg_4]) {O(n)} 11.39/8.14 11.39/8.14 4: lbl31->lbl43, Arg_4: Arg_4 {O(n)} 11.39/8.14 11.39/8.14 4: lbl31->lbl43, Arg_5: 2 {O(1)} 11.39/8.14 11.39/8.14 4: lbl31->lbl43, Arg_6: -1 {O(1)} 11.39/8.14 11.39/8.14 4: lbl31->lbl43, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 4: lbl31->lbl43, Arg_8: 1 {O(1)} 11.39/8.15 11.39/8.15 4: lbl31->lbl43, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_0: 2 {O(1)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_3: 1 {O(1)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_5: 2 {O(1)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_6: 0 {O(1)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_8: 2 {O(1)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_0: 3 {O(1)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_3: min([1, Arg_4]) {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_5: 3 {O(1)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_6: -1 {O(1)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_8: 2 {O(1)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_0: 2 {O(1)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_3: 1 {O(1)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_5: 2 {O(1)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_6: -1 {O(1)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_8: 2 {O(1)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_0: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_1: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_3: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_5: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_6: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_8: 1 {O(1)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_0: 2 {O(1)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_3: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_5: 2 {O(1)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_6: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_8: 1 {O(1)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_0: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_1: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_3: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_5: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_6: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_8: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 `Upper: 11.39/8.15 11.39/8.15 6: lbl13->stop, Arg_0: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 6: lbl13->stop, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 6: lbl13->stop, Arg_3: max([1, 1+2*max([0, -1+Arg_0])]) {O(n)} 11.39/8.15 11.39/8.15 6: lbl13->stop, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 6: lbl13->stop, Arg_5: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 6: lbl13->stop, Arg_6: max([0, max([-1, max([-1+2*max([0, -1+Arg_0]), 2*max([0, -1+Arg_0])])])]) {O(n)} 11.39/8.15 11.39/8.15 6: lbl13->stop, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 6: lbl13->stop, Arg_8: 1+2*max([0, -1+Arg_0]) {O(n)} 11.39/8.15 11.39/8.15 6: lbl13->stop, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 7: lbl13->lbl31, Arg_0: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 7: lbl13->lbl31, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 7: lbl13->lbl31, Arg_3: max([1, 1+2*max([0, -1+Arg_0])]) {O(n)} 11.39/8.15 11.39/8.15 7: lbl13->lbl31, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 7: lbl13->lbl31, Arg_5: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 7: lbl13->lbl31, Arg_6: max([0, max([-1, max([-1+2*max([0, -1+Arg_0]), 2*max([0, -1+Arg_0])])])]) {O(n)} 11.39/8.15 11.39/8.15 7: lbl13->lbl31, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 7: lbl13->lbl31, Arg_8: 1+2*max([0, -1+Arg_0]) {O(n)} 11.39/8.15 11.39/8.15 7: lbl13->lbl31, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 4: lbl31->lbl43, Arg_0: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 4: lbl31->lbl43, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 4: lbl31->lbl43, Arg_3: max([1, max([Arg_4, 1+2*max([0, -1+Arg_0])])]) {O(n)} 11.39/8.15 11.39/8.15 4: lbl31->lbl43, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 4: lbl31->lbl43, Arg_5: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 4: lbl31->lbl43, Arg_6: max([-1, -1+2*max([0, -1+Arg_0])]) {O(n)} 11.39/8.15 11.39/8.15 4: lbl31->lbl43, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 4: lbl31->lbl43, Arg_8: 1+2*max([0, -1+Arg_0]) {O(n)} 11.39/8.15 11.39/8.15 4: lbl31->lbl43, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_0: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_3: max([1, 1+2*max([0, -1+Arg_0])]) {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_5: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_6: max([0, 2*max([0, -1+Arg_0])]) {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_8: 1+2*max([0, -1+Arg_0]) {O(n)} 11.39/8.15 11.39/8.15 5: lbl31->lbl13, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_0: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_3: max([1, max([Arg_4, 1+2*max([0, -1+Arg_0])])]) {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_5: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_6: max([-1, -1+2*max([0, -1+Arg_0])]) {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_8: 1+2*max([0, -1+Arg_0]) {O(n)} 11.39/8.15 11.39/8.15 2: lbl43->lbl43, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_0: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_3: 1+2*max([0, -1+Arg_0]) {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_5: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_6: max([-1, -1+2*max([0, -1+Arg_0])]) {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_8: 1+2*max([0, -1+Arg_0]) {O(n)} 11.39/8.15 11.39/8.15 3: lbl43->lbl13, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_0: 1 {O(1)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_1: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_3: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_5: 1 {O(1)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_6: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_8: 1 {O(1)} 11.39/8.15 11.39/8.15 0: start->stop, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_0: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_3: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_5: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_6: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_8: 1 {O(1)} 11.39/8.15 11.39/8.15 1: start->lbl31, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_0: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_1: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_2: Arg_2 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_3: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_4: Arg_4 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_5: Arg_0 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_6: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_7: Arg_7 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_8: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 8: start0->start, Arg_9: Arg_9 {O(n)} 11.39/8.15 11.39/8.15 11.39/8.15 ---------------------------------------- 11.39/8.15 11.39/8.15 (2) 11.39/8.15 BOUNDS(1, nat(-2 + 2 * Arg_0) + nat(Arg_0) + max(2 * Arg_0, 4) + max(3, 3 + Arg_0 * max(2 * Arg_0, 4) + min(-4, -2 * Arg_0)) + max(1, Arg_0)) 11.39/8.15 11.39/8.15 ---------------------------------------- 11.39/8.15 11.39/8.15 (3) Loat Proof (FINISHED) 11.39/8.15 11.39/8.15 11.39/8.15 ### Pre-processing the ITS problem ### 11.39/8.15 11.39/8.15 11.39/8.15 11.39/8.15 Initial linear ITS problem 11.39/8.15 11.39/8.15 Start location: start0 11.39/8.15 11.39/8.15 0: start -> stop : Q'=1, [ 1>=A && B==C && D==E && F==A && G==H && Q==J ], cost: 1 11.39/8.15 11.39/8.15 1: start -> lbl31 : B'=free, Q'=1, [ A>=2 && B==C && D==E && F==A && G==H && Q==J ], cost: 1 11.39/8.15 11.39/8.15 2: lbl43 -> lbl43 : G'=-1+G, [ G>=0 && Q>=2+G && 1+G>=0 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 3: lbl43 -> lbl13 : D'=Q, Q'=1+Q, [ Q>=2+G && 1+G>=0 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 4: lbl31 -> lbl43 : G'=-2+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 5: lbl31 -> lbl13 : D'=Q, G'=-1+Q, Q'=1+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 6: lbl13 -> stop : [ G+A>=2 && 1+G>=0 && A>=2+G && F==A && Q==A && 1+D==A ], cost: 1 11.39/8.15 11.39/8.15 7: lbl13 -> lbl31 : B'=free_1, [ A>=2+D && G+D>=1 && 1+G>=0 && A>=1+D && D>=1+G && F==A && Q==1+D ], cost: 1 11.39/8.15 11.39/8.15 8: start0 -> start : B'=C, D'=E, F'=A, G'=H, Q'=J, [], cost: 1 11.39/8.15 11.39/8.15 11.39/8.15 11.39/8.15 Removed unreachable and leaf rules: 11.39/8.15 11.39/8.15 Start location: start0 11.39/8.15 11.39/8.15 1: start -> lbl31 : B'=free, Q'=1, [ A>=2 && B==C && D==E && F==A && G==H && Q==J ], cost: 1 11.39/8.15 11.39/8.15 2: lbl43 -> lbl43 : G'=-1+G, [ G>=0 && Q>=2+G && 1+G>=0 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 3: lbl43 -> lbl13 : D'=Q, Q'=1+Q, [ Q>=2+G && 1+G>=0 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 4: lbl31 -> lbl43 : G'=-2+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 5: lbl31 -> lbl13 : D'=Q, G'=-1+Q, Q'=1+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 7: lbl13 -> lbl31 : B'=free_1, [ A>=2+D && G+D>=1 && 1+G>=0 && A>=1+D && D>=1+G && F==A && Q==1+D ], cost: 1 11.39/8.15 11.39/8.15 8: start0 -> start : B'=C, D'=E, F'=A, G'=H, Q'=J, [], cost: 1 11.39/8.15 11.39/8.15 11.39/8.15 11.39/8.15 Simplified all rules, resulting in: 11.39/8.15 11.39/8.15 Start location: start0 11.39/8.15 11.39/8.15 1: start -> lbl31 : B'=free, Q'=1, [ A>=2 && B==C && D==E && F==A && G==H && Q==J ], cost: 1 11.39/8.15 11.39/8.15 2: lbl43 -> lbl43 : G'=-1+G, [ G>=0 && Q>=2+G && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 3: lbl43 -> lbl13 : D'=Q, Q'=1+Q, [ Q>=2+G && 1+G>=0 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 4: lbl31 -> lbl43 : G'=-2+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 5: lbl31 -> lbl13 : D'=Q, G'=-1+Q, Q'=1+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 7: lbl13 -> lbl31 : B'=free_1, [ A>=2+D && G+D>=1 && 1+G>=0 && D>=1+G && F==A && Q==1+D ], cost: 1 11.39/8.15 11.39/8.15 8: start0 -> start : B'=C, D'=E, F'=A, G'=H, Q'=J, [], cost: 1 11.39/8.15 11.39/8.15 11.39/8.15 11.39/8.15 ### Simplification by acceleration and chaining ### 11.39/8.15 11.39/8.15 11.39/8.15 11.39/8.15 Accelerating simple loops of location 1. 11.39/8.15 11.39/8.15 Accelerating the following rules: 11.39/8.15 11.39/8.15 2: lbl43 -> lbl43 : G'=-1+G, [ G>=0 && Q>=2+G && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 11.39/8.15 11.39/8.15 Accelerated rule 2 with metering function 1+G, yielding the new rule 9. 11.39/8.15 11.39/8.15 Removing the simple loops: 2. 11.39/8.15 11.39/8.15 11.39/8.15 11.39/8.15 Accelerated all simple loops using metering functions (where possible): 11.39/8.15 11.39/8.15 Start location: start0 11.39/8.15 11.39/8.15 1: start -> lbl31 : B'=free, Q'=1, [ A>=2 && B==C && D==E && F==A && G==H && Q==J ], cost: 1 11.39/8.15 11.39/8.15 3: lbl43 -> lbl13 : D'=Q, Q'=1+Q, [ Q>=2+G && 1+G>=0 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 9: lbl43 -> lbl43 : G'=-1, [ G>=0 && Q>=2+G && A>=1+Q && F==A ], cost: 1+G 11.39/8.15 11.39/8.15 4: lbl31 -> lbl43 : G'=-2+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 5: lbl31 -> lbl13 : D'=Q, G'=-1+Q, Q'=1+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 7: lbl13 -> lbl31 : B'=free_1, [ A>=2+D && G+D>=1 && 1+G>=0 && D>=1+G && F==A && Q==1+D ], cost: 1 11.39/8.15 11.39/8.15 8: start0 -> start : B'=C, D'=E, F'=A, G'=H, Q'=J, [], cost: 1 11.39/8.15 11.39/8.15 11.39/8.15 11.39/8.15 Chained accelerated rules (with incoming rules): 11.39/8.15 11.39/8.15 Start location: start0 11.39/8.15 11.39/8.15 1: start -> lbl31 : B'=free, Q'=1, [ A>=2 && B==C && D==E && F==A && G==H && Q==J ], cost: 1 11.39/8.15 11.39/8.15 3: lbl43 -> lbl13 : D'=Q, Q'=1+Q, [ Q>=2+G && 1+G>=0 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 4: lbl31 -> lbl43 : G'=-2+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 5: lbl31 -> lbl13 : D'=Q, G'=-1+Q, Q'=1+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 10: lbl31 -> lbl43 : G'=-1, [ A>=1+Q && F==A && -2+Q>=0 ], cost: Q 11.39/8.15 11.39/8.15 7: lbl13 -> lbl31 : B'=free_1, [ A>=2+D && G+D>=1 && 1+G>=0 && D>=1+G && F==A && Q==1+D ], cost: 1 11.39/8.15 11.39/8.15 8: start0 -> start : B'=C, D'=E, F'=A, G'=H, Q'=J, [], cost: 1 11.39/8.15 11.39/8.15 11.39/8.15 11.39/8.15 Eliminated locations (on linear paths): 11.39/8.15 11.39/8.15 Start location: start0 11.39/8.15 11.39/8.15 3: lbl43 -> lbl13 : D'=Q, Q'=1+Q, [ Q>=2+G && 1+G>=0 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 4: lbl31 -> lbl43 : G'=-2+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 5: lbl31 -> lbl13 : D'=Q, G'=-1+Q, Q'=1+Q, [ Q>=1 && A>=1+Q && F==A ], cost: 1 11.39/8.15 11.39/8.15 10: lbl31 -> lbl43 : G'=-1, [ A>=1+Q && F==A && -2+Q>=0 ], cost: Q 11.39/8.15 11.39/8.15 7: lbl13 -> lbl31 : B'=free_1, [ A>=2+D && G+D>=1 && 1+G>=0 && D>=1+G && F==A && Q==1+D ], cost: 1 11.39/8.15 11.39/8.15 11: start0 -> lbl31 : B'=free, D'=E, F'=A, G'=H, Q'=1, [ A>=2 ], cost: 2 11.39/8.15 11.39/8.15 11.39/8.15 11.39/8.15 Eliminated locations (on tree-shaped paths): 11.39/8.15 11.39/8.15 Start location: start0 11.39/8.15 11.39/8.15 14: lbl31 -> lbl31 : B'=free_1, D'=Q, G'=-1+Q, Q'=1+Q, [ Q>=1 && F==A && A>=2+Q && -1+2*Q>=1 ], cost: 2 11.39/8.15 11.39/8.15 15: lbl31 -> lbl31 : B'=free_1, D'=Q, G'=-2+Q, Q'=1+Q, [ Q>=1 && F==A && A>=2+Q && -2+2*Q>=1 ], cost: 3 11.39/8.15 11.39/8.15 16: lbl31 -> lbl31 : B'=free_1, D'=Q, G'=-1, Q'=1+Q, [ F==A && -2+Q>=0 && A>=2+Q ], cost: 2+Q 11.47/8.15 11.47/8.15 11: start0 -> lbl31 : B'=free, D'=E, F'=A, G'=H, Q'=1, [ A>=2 ], cost: 2 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 Accelerating simple loops of location 2. 11.47/8.15 11.47/8.15 Accelerating the following rules: 11.47/8.15 11.47/8.15 14: lbl31 -> lbl31 : B'=free_1, D'=Q, G'=-1+Q, Q'=1+Q, [ Q>=1 && F==A && A>=2+Q && -1+2*Q>=1 ], cost: 2 11.47/8.15 11.47/8.15 15: lbl31 -> lbl31 : B'=free_1, D'=Q, G'=-2+Q, Q'=1+Q, [ Q>=1 && F==A && A>=2+Q && -2+2*Q>=1 ], cost: 3 11.47/8.15 11.47/8.15 16: lbl31 -> lbl31 : B'=free_1, D'=Q, G'=-1, Q'=1+Q, [ F==A && -2+Q>=0 && A>=2+Q ], cost: 2+Q 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 Accelerated rule 14 with metering function -1-Q+A, yielding the new rule 17. 11.47/8.15 11.47/8.15 Accelerated rule 15 with metering function -1-Q+A, yielding the new rule 18. 11.47/8.15 11.47/8.15 Accelerated rule 16 with metering function -1-Q+A, yielding the new rule 19. 11.47/8.15 11.47/8.15 Removing the simple loops: 14 15 16. 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 Accelerated all simple loops using metering functions (where possible): 11.47/8.15 11.47/8.15 Start location: start0 11.47/8.15 11.47/8.15 17: lbl31 -> lbl31 : B'=free_1, D'=-2+A, G'=-3+A, Q'=-1+A, [ Q>=1 && F==A && A>=2+Q && -1+2*Q>=1 ], cost: -2-2*Q+2*A 11.47/8.15 11.47/8.15 18: lbl31 -> lbl31 : B'=free_1, D'=-2+A, G'=-4+A, Q'=-1+A, [ Q>=1 && F==A && A>=2+Q && -2+2*Q>=1 ], cost: -3-3*Q+3*A 11.47/8.15 11.47/8.15 19: lbl31 -> lbl31 : B'=free_1, D'=-2+A, G'=-1, Q'=-1+A, [ F==A && -2+Q>=0 && A>=2+Q ], cost: -3/2-3/2*Q+1/2*(1+Q-A)^2+3/2*A-Q*(1+Q-A) 11.47/8.15 11.47/8.15 11: start0 -> lbl31 : B'=free, D'=E, F'=A, G'=H, Q'=1, [ A>=2 ], cost: 2 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 Chained accelerated rules (with incoming rules): 11.47/8.15 11.47/8.15 Start location: start0 11.47/8.15 11.47/8.15 11: start0 -> lbl31 : B'=free, D'=E, F'=A, G'=H, Q'=1, [ A>=2 ], cost: 2 11.47/8.15 11.47/8.15 20: start0 -> lbl31 : B'=free_1, D'=-2+A, F'=A, G'=-3+A, Q'=-1+A, [ A>=3 ], cost: -2+2*A 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 Removed unreachable locations (and leaf rules with constant cost): 11.47/8.15 11.47/8.15 Start location: start0 11.47/8.15 11.47/8.15 20: start0 -> lbl31 : B'=free_1, D'=-2+A, F'=A, G'=-3+A, Q'=-1+A, [ A>=3 ], cost: -2+2*A 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 ### Computing asymptotic complexity ### 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 Fully simplified ITS problem 11.47/8.15 11.47/8.15 Start location: start0 11.47/8.15 11.47/8.15 20: start0 -> lbl31 : B'=free_1, D'=-2+A, F'=A, G'=-3+A, Q'=-1+A, [ A>=3 ], cost: -2+2*A 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 Computing asymptotic complexity for rule 20 11.47/8.15 11.47/8.15 Solved the limit problem by the following transformations: 11.47/8.15 11.47/8.15 Created initial limit problem: 11.47/8.15 11.47/8.15 -2+2*A (+), -2+A (+/+!) [not solved] 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 removing all constraints (solved by SMT) 11.47/8.15 11.47/8.15 resulting limit problem: [solved] 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 applying transformation rule (C) using substitution {A==n} 11.47/8.15 11.47/8.15 resulting limit problem: 11.47/8.15 11.47/8.15 [solved] 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 Solution: 11.47/8.15 11.47/8.15 A / n 11.47/8.15 11.47/8.15 Resulting cost -2+2*n has complexity: Poly(n^1) 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 Found new complexity Poly(n^1). 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 Obtained the following overall complexity (w.r.t. the length of the input n): 11.47/8.15 11.47/8.15 Complexity: Poly(n^1) 11.47/8.15 11.47/8.15 Cpx degree: 1 11.47/8.15 11.47/8.15 Solved cost: -2+2*n 11.47/8.15 11.47/8.15 Rule cost: -2+2*A 11.47/8.15 11.47/8.15 Rule guard: [ A>=3 ] 11.47/8.15 11.47/8.15 11.47/8.15 11.47/8.15 WORST_CASE(Omega(n^1),?) 11.47/8.15 11.47/8.15 11.47/8.15 ---------------------------------------- 11.47/8.15 11.47/8.15 (4) 11.47/8.15 BOUNDS(n^1, INF) 11.48/9.47 EOF