/export/starexec/sandbox/solver/bin/starexec_run_complexity /export/starexec/sandbox/benchmark/theBenchmark.koat /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(?, O(n^2)) proof of /export/starexec/sandbox/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(29 + 27 * Arg_1, 29 + 27 * Arg_2, 2 + 27 * Arg_0, 29) + nat(Arg_3) + nat(Arg_3 * max(28 + 27 * Arg_3, 28, 1 + 27 * Arg_3)) + max(2, 2 + 2 * Arg_3)). (0) CpxIntTrs (1) Koat2 Proof [FINISHED, 523 ms] (2) BOUNDS(1, max(29 + 27 * Arg_1, 29 + 27 * Arg_2, 2 + 27 * Arg_0, 29) + nat(Arg_3) + nat(Arg_3 * max(28 + 27 * Arg_3, 28, 1 + 27 * Arg_3)) + max(2, 2 + 2 * Arg_3)) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: l0(A, B, C, F) -> Com_1(l1(A, B, C, F)) :|: TRUE l1(A, B, C, F) -> Com_1(l1(A + B, B + C, C - 1, F)) :|: A >= 1 l1(A, B, C, F) -> Com_1(l2(A, B, C, F - 1)) :|: 0 >= A l2(A, B, C, F) -> Com_1(l1(F, F, F, F)) :|: F >= 1 The start-symbols are:[l0_4] ---------------------------------------- (1) Koat2 Proof (FINISHED) YES( ?, 2+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))])+max([2, 2+2*Arg_3]) {O(n^2)}) Initial Complexity Problem: Start: l0 Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3 Temp_Vars: Locations: l0, l1, l2 Transitions: 0: l0->l1 1: l1->l1 2: l1->l2 3: l2->l1 Timebounds: Overall timebound: 2+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))])+max([2, 2+2*Arg_3]) {O(n^2)} 0: l0->l1: 1 {O(1)} 1: l1->l1: 1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]) {O(n^2)} 2: l1->l2: max([2, 2+2*Arg_3]) {O(n)} 3: l2->l1: max([0, Arg_3]) {O(n)} Costbounds: Overall costbound: 2+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))])+max([2, 2+2*Arg_3]) {O(n^2)} 0: l0->l1: 1 {O(1)} 1: l1->l1: 1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]) {O(n^2)} 2: l1->l2: max([2, 2+2*Arg_3]) {O(n)} 3: l2->l1: max([0, Arg_3]) {O(n)} Sizebounds: `Lower: 0: l0->l1, Arg_0: Arg_0 {O(n)} 0: l0->l1, Arg_1: Arg_1 {O(n)} 0: l0->l1, Arg_2: Arg_2 {O(n)} 0: l0->l1, Arg_3: Arg_3 {O(n)} 1: l1->l1, Arg_0: min([2, min([-(-1-Arg_1), -(-1+(1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]))*max([0, max([-1, max([-(Arg_2), 1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([-1, -(Arg_2)])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))])])])])+max([-1, max([-(Arg_2), max([-(Arg_1), 1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([-1, -(Arg_2)])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))])])])]))])]) {O(n^4)} 1: l1->l1, Arg_1: min([1, min([Arg_2, min([Arg_1, -(1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([-1, -(Arg_2)])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]))])])])+(-1+min([0, -(Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])])))])+-27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])]))*max([0, max([-1, max([-(Arg_2), 1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([-1, -(Arg_2)])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))])])])]) {O(n^4)} 1: l1->l1, Arg_2: -1+min([1, Arg_2])-max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))])+-27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])]) {O(n^2)} 1: l1->l1, Arg_3: min([1, Arg_3]) {O(n)} 2: l1->l2, Arg_0: min([2, min([Arg_0, min([-(-1-Arg_1), -(-1+(1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]))*max([0, max([-1, max([-(Arg_2), 1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([-1, -(Arg_2)])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))])])])])+max([-1, max([-(Arg_2), max([-(Arg_1), 1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([-1, -(Arg_2)])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))])])])]))])])]) {O(n^4)} 2: l1->l2, Arg_1: min([Arg_1, -((1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]))*max([0, max([-1, max([-(Arg_2), 1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([-1, -(Arg_2)])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))])])])])+max([-1, max([-(Arg_2), max([-(Arg_1), 1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([-1, -(Arg_2)])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))])])])]))]) {O(n^4)} 2: l1->l2, Arg_2: min([Arg_2, -(1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([-1, -(Arg_2)])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]))]) {O(n^2)} 2: l1->l2, Arg_3: min([0, -(1-Arg_3)]) {O(n)} 3: l2->l1, Arg_0: 1 {O(1)} 3: l2->l1, Arg_1: 1 {O(1)} 3: l2->l1, Arg_2: 1 {O(1)} 3: l2->l1, Arg_3: 1 {O(1)} `Upper: 0: l0->l1, Arg_0: Arg_0 {O(n)} 0: l0->l1, Arg_1: Arg_1 {O(n)} 0: l0->l1, Arg_2: Arg_2 {O(n)} 0: l0->l1, Arg_3: Arg_3 {O(n)} 1: l1->l1, Arg_0: (1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]))*max([0, max([Arg_1, max([Arg_3, (1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]))*max([0, max([Arg_2, Arg_3])])+max([Arg_3, max([Arg_1, max([Arg_2, max([Arg_2, Arg_3])])])])])])])+max([Arg_0, max([Arg_3, max([Arg_1, max([Arg_3, (1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]))*max([0, max([Arg_2, Arg_3])])+max([Arg_3, max([Arg_1, max([Arg_2, max([Arg_2, Arg_3])])])])])])])]) {O(n^5)} 1: l1->l1, Arg_1: (1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]))*max([0, max([Arg_2, Arg_3])])+max([Arg_3, max([Arg_1, max([Arg_2, max([Arg_2, Arg_3])])])]) {O(n^3)} 1: l1->l1, Arg_2: max([Arg_2, Arg_3]) {O(n)} 1: l1->l1, Arg_3: Arg_3 {O(n)} 2: l1->l2, Arg_0: 0 {O(1)} 2: l1->l2, Arg_1: max([Arg_1, (1+27*max([1, max([Arg_0, max([1+Arg_2, 1+Arg_1])])])+max([0, Arg_3*(1+27*max([1, max([Arg_3, 1+Arg_3])]))]))*max([0, max([Arg_2, Arg_3])])+max([Arg_3, max([Arg_1, max([Arg_2, max([Arg_2, Arg_3])])])])]) {O(n^3)} 2: l1->l2, Arg_2: max([Arg_2, max([Arg_2, Arg_3])]) {O(n)} 2: l1->l2, Arg_3: Arg_3 {O(n)} 3: l2->l1, Arg_0: Arg_3 {O(n)} 3: l2->l1, Arg_1: Arg_3 {O(n)} 3: l2->l1, Arg_2: Arg_3 {O(n)} 3: l2->l1, Arg_3: Arg_3 {O(n)} ---------------------------------------- (2) BOUNDS(1, max(29 + 27 * Arg_1, 29 + 27 * Arg_2, 2 + 27 * Arg_0, 29) + nat(Arg_3) + nat(Arg_3 * max(28 + 27 * Arg_3, 28, 1 + 27 * Arg_3)) + max(2, 2 + 2 * Arg_3))