/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.koat /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(?, O(n^2)) proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(1, max(10 + 2 * Arg_0, 8) + max(6, -2 + 4 * Arg_0) + max(1, 1 + Arg_0) + max(2, 2 + 2 * Arg_0) * max(5, -1 + 2 * Arg_0)). (0) CpxIntTrs (1) Koat2 Proof [FINISHED, 1772 ms] (2) BOUNDS(1, max(10 + 2 * Arg_0, 8) + max(6, -2 + 4 * Arg_0) + max(1, 1 + Arg_0) + max(2, 2 + 2 * Arg_0) * max(5, -1 + 2 * Arg_0)) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: start(A, B, C, D, E, F) -> Com_1(stop(A, B, C, F, E, F)) :|: 0 >= A + 1 && B >= C && B <= C && D >= E && D <= E && F >= A && F <= A start(A, B, C, D, E, F) -> Com_1(lbl121(A, 1, C, F - 1, E, F)) :|: A >= 0 && 1 >= A && B >= C && B <= C && D >= E && D <= E && F >= A && F <= A start(A, B, C, D, E, F) -> Com_1(lbl101(A, 2, C, F, E, F)) :|: A >= 2 && B >= C && B <= C && D >= E && D <= E && F >= A && F <= A lbl121(A, B, C, D, E, F) -> Com_1(stop(A, B, C, D, E, F)) :|: A >= 0 && B >= 0 && B >= 1 && D + 1 >= 0 && D + 1 <= 0 && F >= A && F <= A lbl121(A, B, C, D, E, F) -> Com_1(lbl121(A, 1, C, D - 1, E, F)) :|: D >= 0 && 1 >= D && A >= D + 1 && B >= D + 1 && B >= 1 && D + 1 >= 0 && F >= A && F <= A lbl121(A, B, C, D, E, F) -> Com_1(lbl101(A, 2, C, D, E, F)) :|: D >= 2 && A >= D + 1 && B >= D + 1 && B >= 1 && D + 1 >= 0 && F >= A && F <= A lbl101(A, B, C, D, E, F) -> Com_1(lbl101(A, 2 * B, C, D, E, F)) :|: D >= B + 1 && B >= 2 && 2 * D >= B + 2 && A >= D && F >= A && F <= A lbl101(A, B, C, D, E, F) -> Com_1(lbl121(A, B, C, D - 1, E, F)) :|: B >= D && B >= 2 && 2 * D >= B + 2 && A >= D && F >= A && F <= A start0(A, B, C, D, E, F) -> Com_1(start(A, C, C, E, E, A)) :|: TRUE The start-symbols are:[start0_6] ---------------------------------------- (1) Koat2 Proof (FINISHED) YES( ?, 5+1+max([1, 2+Arg_0])+max([3, -1+2*Arg_0])+max([1, 1+Arg_0])+max([3, -1+2*Arg_0])+2*max([1, 1+Arg_0])*max([5, -1+2*Arg_0])+max([1, 2+Arg_0]) {O(n^2)}) Initial Complexity Problem: Start: start0 Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 Temp_Vars: Locations: lbl101, lbl121, start, start0, stop Transitions: 6: lbl101->lbl101 7: lbl101->lbl121 5: lbl121->lbl101 4: lbl121->lbl121 3: lbl121->stop 2: start->lbl101 1: start->lbl121 0: start->stop 8: start0->start Timebounds: Overall timebound: 5+1+max([1, 2+Arg_0])+max([3, -1+2*Arg_0])+max([1, 1+Arg_0])+max([3, -1+2*Arg_0])+2*max([1, 1+Arg_0])*max([5, -1+2*Arg_0])+max([1, 2+Arg_0]) {O(n^2)} 6: lbl101->lbl101: 1+2*max([1, 1+Arg_0])*max([5, -1+2*Arg_0])+max([3, -1+2*Arg_0])+max([3, -1+2*Arg_0]) {O(n^2)} 7: lbl101->lbl121: max([1, 2+Arg_0]) {O(n)} 3: lbl121->stop: 1 {O(1)} 4: lbl121->lbl121: max([1, 2+Arg_0]) {O(n)} 5: lbl121->lbl101: max([1, 1+Arg_0]) {O(n)} 0: start->stop: 1 {O(1)} 1: start->lbl121: 1 {O(1)} 2: start->lbl101: 1 {O(1)} 8: start0->start: 1 {O(1)} Costbounds: Overall costbound: 5+1+max([1, 2+Arg_0])+max([3, -1+2*Arg_0])+max([1, 1+Arg_0])+max([3, -1+2*Arg_0])+2*max([1, 1+Arg_0])*max([5, -1+2*Arg_0])+max([1, 2+Arg_0]) {O(n^2)} 6: lbl101->lbl101: 1+2*max([1, 1+Arg_0])*max([5, -1+2*Arg_0])+max([3, -1+2*Arg_0])+max([3, -1+2*Arg_0]) {O(n^2)} 7: lbl101->lbl121: max([1, 2+Arg_0]) {O(n)} 3: lbl121->stop: 1 {O(1)} 4: lbl121->lbl121: max([1, 2+Arg_0]) {O(n)} 5: lbl121->lbl101: max([1, 1+Arg_0]) {O(n)} 0: start->stop: 1 {O(1)} 1: start->lbl121: 1 {O(1)} 2: start->lbl101: 1 {O(1)} 8: start0->start: 1 {O(1)} Sizebounds: `Lower: 6: lbl101->lbl101, Arg_0: 3 {O(1)} 6: lbl101->lbl101, Arg_1: 4 {O(1)} 6: lbl101->lbl101, Arg_2: Arg_2 {O(n)} 6: lbl101->lbl101, Arg_3: 3 {O(1)} 6: lbl101->lbl101, Arg_4: Arg_4 {O(n)} 6: lbl101->lbl101, Arg_5: 3 {O(1)} 7: lbl101->lbl121, Arg_0: 2 {O(1)} 7: lbl101->lbl121, Arg_1: 2 {O(1)} 7: lbl101->lbl121, Arg_2: Arg_2 {O(n)} 7: lbl101->lbl121, Arg_3: 1 {O(1)} 7: lbl101->lbl121, Arg_4: Arg_4 {O(n)} 7: lbl101->lbl121, Arg_5: 2 {O(1)} 3: lbl121->stop, Arg_0: 0 {O(1)} 3: lbl121->stop, Arg_1: 1 {O(1)} 3: lbl121->stop, Arg_2: Arg_2 {O(n)} 3: lbl121->stop, Arg_3: -1 {O(1)} 3: lbl121->stop, Arg_4: Arg_4 {O(n)} 3: lbl121->stop, Arg_5: 0 {O(1)} 4: lbl121->lbl121, Arg_0: 1 {O(1)} 4: lbl121->lbl121, Arg_1: 1 {O(1)} 4: lbl121->lbl121, Arg_2: Arg_2 {O(n)} 4: lbl121->lbl121, Arg_3: -1 {O(1)} 4: lbl121->lbl121, Arg_4: Arg_4 {O(n)} 4: lbl121->lbl121, Arg_5: 1 {O(1)} 5: lbl121->lbl101, Arg_0: 3 {O(1)} 5: lbl121->lbl101, Arg_1: 2 {O(1)} 5: lbl121->lbl101, Arg_2: Arg_2 {O(n)} 5: lbl121->lbl101, Arg_3: 2 {O(1)} 5: lbl121->lbl101, Arg_4: Arg_4 {O(n)} 5: lbl121->lbl101, Arg_5: 3 {O(1)} 0: start->stop, Arg_0: Arg_0 {O(n)} 0: start->stop, Arg_1: Arg_2 {O(n)} 0: start->stop, Arg_2: Arg_2 {O(n)} 0: start->stop, Arg_3: Arg_0 {O(n)} 0: start->stop, Arg_4: Arg_4 {O(n)} 0: start->stop, Arg_5: Arg_0 {O(n)} 1: start->lbl121, Arg_0: 0 {O(1)} 1: start->lbl121, Arg_1: 1 {O(1)} 1: start->lbl121, Arg_2: Arg_2 {O(n)} 1: start->lbl121, Arg_3: -1 {O(1)} 1: start->lbl121, Arg_4: Arg_4 {O(n)} 1: start->lbl121, Arg_5: 0 {O(1)} 2: start->lbl101, Arg_0: 2 {O(1)} 2: start->lbl101, Arg_1: 2 {O(1)} 2: start->lbl101, Arg_2: Arg_2 {O(n)} 2: start->lbl101, Arg_3: 2 {O(1)} 2: start->lbl101, Arg_4: Arg_4 {O(n)} 2: start->lbl101, Arg_5: 2 {O(1)} 8: start0->start, Arg_0: Arg_0 {O(n)} 8: start0->start, Arg_1: Arg_2 {O(n)} 8: start0->start, Arg_2: Arg_2 {O(n)} 8: start0->start, Arg_3: Arg_4 {O(n)} 8: start0->start, Arg_4: Arg_4 {O(n)} 8: start0->start, Arg_5: Arg_0 {O(n)} `Upper: 6: lbl101->lbl101, Arg_0: Arg_0 {O(n)} 6: lbl101->lbl101, Arg_1: 2*2^(1+2*max([1, 1+Arg_0])*max([5, -1+2*Arg_0])+max([3, -1+2*Arg_0])+max([3, -1+2*Arg_0])) {O(EXP)} 6: lbl101->lbl101, Arg_2: Arg_2 {O(n)} 6: lbl101->lbl101, Arg_3: Arg_0 {O(n)} 6: lbl101->lbl101, Arg_4: Arg_4 {O(n)} 6: lbl101->lbl101, Arg_5: Arg_0 {O(n)} 7: lbl101->lbl121, Arg_0: Arg_0 {O(n)} 7: lbl101->lbl121, Arg_1: max([2, 2*2^(1+2*max([1, 1+Arg_0])*max([5, -1+2*Arg_0])+max([3, -1+2*Arg_0])+max([3, -1+2*Arg_0]))]) {O(EXP)} 7: lbl101->lbl121, Arg_2: Arg_2 {O(n)} 7: lbl101->lbl121, Arg_3: Arg_0 {O(n)} 7: lbl101->lbl121, Arg_4: Arg_4 {O(n)} 7: lbl101->lbl121, Arg_5: Arg_0 {O(n)} 3: lbl121->stop, Arg_0: max([1, max([1, Arg_0])]) {O(n)} 3: lbl121->stop, Arg_1: 1 {O(1)} 3: lbl121->stop, Arg_2: Arg_2 {O(n)} 3: lbl121->stop, Arg_3: -1 {O(1)} 3: lbl121->stop, Arg_4: Arg_4 {O(n)} 3: lbl121->stop, Arg_5: max([1, max([1, Arg_0])]) {O(n)} 4: lbl121->lbl121, Arg_0: max([1, Arg_0]) {O(n)} 4: lbl121->lbl121, Arg_1: 1 {O(1)} 4: lbl121->lbl121, Arg_2: Arg_2 {O(n)} 4: lbl121->lbl121, Arg_3: 0 {O(1)} 4: lbl121->lbl121, Arg_4: Arg_4 {O(n)} 4: lbl121->lbl121, Arg_5: max([1, Arg_0]) {O(n)} 5: lbl121->lbl101, Arg_0: Arg_0 {O(n)} 5: lbl121->lbl101, Arg_1: 2 {O(1)} 5: lbl121->lbl101, Arg_2: Arg_2 {O(n)} 5: lbl121->lbl101, Arg_3: Arg_0 {O(n)} 5: lbl121->lbl101, Arg_4: Arg_4 {O(n)} 5: lbl121->lbl101, Arg_5: Arg_0 {O(n)} 0: start->stop, Arg_0: -1 {O(1)} 0: start->stop, Arg_1: Arg_2 {O(n)} 0: start->stop, Arg_2: Arg_2 {O(n)} 0: start->stop, Arg_3: -1 {O(1)} 0: start->stop, Arg_4: Arg_4 {O(n)} 0: start->stop, Arg_5: -1 {O(1)} 1: start->lbl121, Arg_0: 1 {O(1)} 1: start->lbl121, Arg_1: 1 {O(1)} 1: start->lbl121, Arg_2: Arg_2 {O(n)} 1: start->lbl121, Arg_3: 0 {O(1)} 1: start->lbl121, Arg_4: Arg_4 {O(n)} 1: start->lbl121, Arg_5: 1 {O(1)} 2: start->lbl101, Arg_0: Arg_0 {O(n)} 2: start->lbl101, Arg_1: 2 {O(1)} 2: start->lbl101, Arg_2: Arg_2 {O(n)} 2: start->lbl101, Arg_3: Arg_0 {O(n)} 2: start->lbl101, Arg_4: Arg_4 {O(n)} 2: start->lbl101, Arg_5: Arg_0 {O(n)} 8: start0->start, Arg_0: Arg_0 {O(n)} 8: start0->start, Arg_1: Arg_2 {O(n)} 8: start0->start, Arg_2: Arg_2 {O(n)} 8: start0->start, Arg_3: Arg_4 {O(n)} 8: start0->start, Arg_4: Arg_4 {O(n)} 8: start0->start, Arg_5: Arg_0 {O(n)} ---------------------------------------- (2) BOUNDS(1, max(10 + 2 * Arg_0, 8) + max(6, -2 + 4 * Arg_0) + max(1, 1 + Arg_0) + max(2, 2 + 2 * Arg_0) * max(5, -1 + 2 * Arg_0))