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