/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.koat /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(?, O(n^1)) 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(1, 2 + Arg_4) + nat(max(3, 1 + 2 * Arg_1) + max(-2 * Arg_2, -2)) + nat(1 + Arg_4) + nat(1 + Arg_1)). (0) CpxIntTrs (1) Koat2 Proof [FINISHED, 1228 ms] (2) BOUNDS(1, max(1, 2 + Arg_4) + nat(max(3, 1 + 2 * Arg_1) + max(-2 * Arg_2, -2)) + nat(1 + Arg_4) + nat(1 + Arg_1)) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: start(A, B, C, D, E, F) -> Com_1(m1(A, B, C, D, E, F)) :|: A >= 0 && B + A + 2 >= 2 * C && B >= A + 1 && 2 * C >= B + A && D >= 0 && E + 1 >= C && E + 1 <= C && F >= A && F <= A m1(A, B, C, D, E, F) -> Com_1(m1(A, B, H, D, E, G)) :|: B >= 1 && D >= 0 && A >= E + 1 && B + 1 >= G && C + 1 >= H && H >= 1 + C && F + 1 >= G && G >= 1 + F m1(A, B, C, D, E, F) -> Com_1(m1(H, B, C, D, E, G)) :|: B >= 1 && D >= 0 && B >= F && E + 1 >= H && C >= B + 1 && F + 1 >= G && G >= 1 + F && A + 1 >= H && H >= 1 + A m1(A, B, C, D, E, F) -> Com_1(m1(A, B, H, D, E, G)) :|: B >= 1 && D >= 0 && B >= F && B + 1 >= H && E >= A && F + 1 >= G && G >= 1 + F && C + 1 >= H && H >= 1 + C m1(A, B, C, D, E, F) -> Com_1(m1(H, B, C, D, E, G)) :|: B >= 1 && D >= 0 && B >= F && B >= C && E + 1 >= H && A + 1 >= H && H >= 1 + A && F + 1 >= G && G >= 1 + F The start-symbols are:[start_6] ---------------------------------------- (1) Koat2 Proof (FINISHED) YES( ?, 1+max([0, 1+Arg_4])+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])])+max([0, 1+Arg_4])+max([0, 1+Arg_1]) {O(n)}) Initial Complexity Problem: Start: start Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 Temp_Vars: Locations: m1, start Transitions: 1: m1->m1 2: m1->m1 3: m1->m1 4: m1->m1 0: start->m1 Timebounds: Overall timebound: 1+max([0, 1+Arg_4])+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])])+max([0, 1+Arg_4])+max([0, 1+Arg_1]) {O(n)} 1: m1->m1: max([0, 1+Arg_1]) {O(n)} 2: m1->m1: max([0, 1+Arg_4]) {O(n)} 3: m1->m1: max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])]) {O(n)} 4: m1->m1: max([0, 1+Arg_4]) {O(n)} 0: start->m1: 1 {O(1)} Costbounds: Overall costbound: 1+max([0, 1+Arg_4])+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])])+max([0, 1+Arg_4])+max([0, 1+Arg_1]) {O(n)} 1: m1->m1: max([0, 1+Arg_1]) {O(n)} 2: m1->m1: max([0, 1+Arg_4]) {O(n)} 3: m1->m1: max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])]) {O(n)} 4: m1->m1: max([0, 1+Arg_4]) {O(n)} 0: start->m1: 1 {O(1)} Sizebounds: `Lower: 1: m1->m1, Arg_0: 0 {O(1)} 1: m1->m1, Arg_1: 1 {O(1)} 1: m1->m1, Arg_2: 1 {O(1)} 1: m1->m1, Arg_3: 0 {O(1)} 1: m1->m1, Arg_4: 0 {O(1)} 1: m1->m1, Arg_5: 0 {O(1)} 2: m1->m1, Arg_0: 0 {O(1)} 2: m1->m1, Arg_1: 1 {O(1)} 2: m1->m1, Arg_2: 2 {O(1)} 2: m1->m1, Arg_3: 0 {O(1)} 2: m1->m1, Arg_4: 0 {O(1)} 2: m1->m1, Arg_5: 0 {O(1)} 3: m1->m1, Arg_0: 0 {O(1)} 3: m1->m1, Arg_1: 1 {O(1)} 3: m1->m1, Arg_2: 1 {O(1)} 3: m1->m1, Arg_3: 0 {O(1)} 3: m1->m1, Arg_4: 0 {O(1)} 3: m1->m1, Arg_5: 0 {O(1)} 4: m1->m1, Arg_0: 0 {O(1)} 4: m1->m1, Arg_1: 1 {O(1)} 4: m1->m1, Arg_2: 1 {O(1)} 4: m1->m1, Arg_3: 0 {O(1)} 4: m1->m1, Arg_4: 0 {O(1)} 4: m1->m1, Arg_5: 0 {O(1)} 0: start->m1, Arg_0: 0 {O(1)} 0: start->m1, Arg_1: 1 {O(1)} 0: start->m1, Arg_2: 1 {O(1)} 0: start->m1, Arg_3: 0 {O(1)} 0: start->m1, Arg_4: 0 {O(1)} 0: start->m1, Arg_5: 0 {O(1)} `Upper: 1: m1->m1, Arg_0: max([Arg_0+max([0, 1+Arg_4])+max([0, 1+Arg_4]), Arg_0+max([0, 1+Arg_4])]) {O(n)} 1: m1->m1, Arg_1: Arg_1 {O(n)} 1: m1->m1, Arg_2: Arg_2+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])])+max([0, 1+Arg_1]) {O(n)} 1: m1->m1, Arg_3: Arg_3 {O(n)} 1: m1->m1, Arg_4: Arg_4 {O(n)} 1: m1->m1, Arg_5: max([Arg_5+max([0, 1+Arg_4])+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])])+max([0, 1+Arg_4]), Arg_5+max([0, 1+Arg_4])+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])])])+max([0, 1+Arg_1]) {O(n)} 2: m1->m1, Arg_0: Arg_0+max([0, 1+Arg_4])+max([0, 1+Arg_4]) {O(n)} 2: m1->m1, Arg_1: Arg_1 {O(n)} 2: m1->m1, Arg_2: Arg_2+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])]) {O(n)} 2: m1->m1, Arg_3: Arg_3 {O(n)} 2: m1->m1, Arg_4: Arg_4 {O(n)} 2: m1->m1, Arg_5: Arg_5+max([0, 1+Arg_4])+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])])+max([0, 1+Arg_4]) {O(n)} 3: m1->m1, Arg_0: Arg_0+max([0, 1+Arg_4]) {O(n)} 3: m1->m1, Arg_1: Arg_1 {O(n)} 3: m1->m1, Arg_2: Arg_2+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])]) {O(n)} 3: m1->m1, Arg_3: Arg_3 {O(n)} 3: m1->m1, Arg_4: Arg_4 {O(n)} 3: m1->m1, Arg_5: Arg_5+max([0, 1+Arg_4])+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])]) {O(n)} 4: m1->m1, Arg_0: Arg_0+max([0, 1+Arg_4]) {O(n)} 4: m1->m1, Arg_1: Arg_1 {O(n)} 4: m1->m1, Arg_2: Arg_2+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])]) {O(n)} 4: m1->m1, Arg_3: Arg_3 {O(n)} 4: m1->m1, Arg_4: Arg_4 {O(n)} 4: m1->m1, Arg_5: Arg_5+max([0, 1+Arg_4])+max([0, 1+max([2, 2*Arg_1])+max([-2, -2*Arg_2])]) {O(n)} 0: start->m1, Arg_0: Arg_0 {O(n)} 0: start->m1, Arg_1: Arg_1 {O(n)} 0: start->m1, Arg_2: Arg_2 {O(n)} 0: start->m1, Arg_3: Arg_3 {O(n)} 0: start->m1, Arg_4: Arg_4 {O(n)} 0: start->m1, Arg_5: Arg_5 {O(n)} ---------------------------------------- (2) BOUNDS(1, max(1, 2 + Arg_4) + nat(max(3, 1 + 2 * Arg_1) + max(-2 * Arg_2, -2)) + nat(1 + Arg_4) + nat(1 + Arg_1))