/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: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(1, nat(-65280 * Arg_1 + -16646400 * Arg_2) + nat(256 * Arg_1) + nat(-1 * Arg_1 + 255 * Arg_2) + max(10 + -1 * Arg_1 + -255 * Arg_2, 10) + nat(255 + -1 * Arg_1) + nat(-65280 * Arg_1 + 16646400 * Arg_2)). (0) CpxIntTrs (1) Koat2 Proof [FINISHED, 1154 ms] (2) BOUNDS(1, nat(-65280 * Arg_1 + -16646400 * Arg_2) + nat(256 * Arg_1) + nat(-1 * Arg_1 + 255 * Arg_2) + max(10 + -1 * Arg_1 + -255 * Arg_2, 10) + nat(255 + -1 * Arg_1) + nat(-65280 * Arg_1 + 16646400 * Arg_2)) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: eval_ex3_start(v__0, v_b, v_x) -> Com_1(eval_ex3_bb0_in(v__0, v_b, v_x)) :|: TRUE eval_ex3_bb0_in(v__0, v_b, v_x) -> Com_1(eval_ex3_0(v__0, v_b, v_x)) :|: TRUE eval_ex3_0(v__0, v_b, v_x) -> Com_1(eval_ex3_1(v__0, v_b, v_x)) :|: TRUE eval_ex3_1(v__0, v_b, v_x) -> Com_1(eval_ex3_2(v__0, v_b, v_x)) :|: TRUE eval_ex3_2(v__0, v_b, v_x) -> Com_1(eval_ex3_3(v__0, v_b, v_x)) :|: TRUE eval_ex3_3(v__0, v_b, v_x) -> Com_1(eval_ex3_4(v__0, v_b, v_x)) :|: TRUE eval_ex3_4(v__0, v_b, v_x) -> Com_1(eval_ex3_bb1_in(v_x, v_b, v_x)) :|: TRUE eval_ex3_bb1_in(v__0, v_b, v_x) -> Com_1(eval_ex3_bb2_in(v__0, v_b, v_x)) :|: 0 < v__0 && v__0 < 255 eval_ex3_bb1_in(v__0, v_b, v_x) -> Com_1(eval_ex3_bb3_in(v__0, v_b, v_x)) :|: 0 >= v__0 eval_ex3_bb1_in(v__0, v_b, v_x) -> Com_1(eval_ex3_bb3_in(v__0, v_b, v_x)) :|: v__0 >= 255 eval_ex3_bb2_in(v__0, v_b, v_x) -> Com_1(eval_ex3_bb1_in(v__0 + 1, v_b, v_x)) :|: v_b < 0 eval_ex3_bb2_in(v__0, v_b, v_x) -> Com_1(eval_ex3_bb1_in(v__0 + 1, v_b, v_x)) :|: v_b > 0 eval_ex3_bb2_in(v__0, v_b, v_x) -> Com_1(eval_ex3_bb1_in(v__0 - 1, v_b, v_x)) :|: v_b >= 0 && v_b <= 0 eval_ex3_bb3_in(v__0, v_b, v_x) -> Com_1(eval_ex3_stop(v__0, v_b, v_x)) :|: TRUE The start-symbols are:[eval_ex3_start_3] ---------------------------------------- (1) Koat2 Proof (FINISHED) YES( ?, 4+6+max([0, -(Arg_1)+-255*Arg_2])+max([0, 255-Arg_1])+255*(max([0, 255*(-(Arg_1)+255*Arg_2)])+max([0, 255*(-(Arg_1)+-255*Arg_2)])+max([0, Arg_1]))+max([0, 255*(-(Arg_1)+255*Arg_2)])+max([0, -(Arg_1)+255*Arg_2])+max([0, 255*(-(Arg_1)+-255*Arg_2)])+max([0, Arg_1]) {O(n)}) Initial Complexity Problem: Start: evalex3start Program_Vars: Arg_0, Arg_1, Arg_2 Temp_Vars: Locations: evalex30, evalex31, evalex32, evalex33, evalex34, evalex3bb0in, evalex3bb1in, evalex3bb2in, evalex3bb3in, evalex3start, evalex3stop Transitions: evalex30(Arg_0,Arg_1,Arg_2) -> evalex31(Arg_0,Arg_1,Arg_2):|: evalex31(Arg_0,Arg_1,Arg_2) -> evalex32(Arg_0,Arg_1,Arg_2):|: evalex32(Arg_0,Arg_1,Arg_2) -> evalex33(Arg_0,Arg_1,Arg_2):|: evalex33(Arg_0,Arg_1,Arg_2) -> evalex34(Arg_0,Arg_1,Arg_2):|: evalex34(Arg_0,Arg_1,Arg_2) -> evalex3bb1in(Arg_1,Arg_1,Arg_2):|: evalex3bb0in(Arg_0,Arg_1,Arg_2) -> evalex30(Arg_0,Arg_1,Arg_2):|: evalex3bb1in(Arg_0,Arg_1,Arg_2) -> evalex3bb2in(Arg_0,Arg_1,Arg_2):|:1 <= Arg_0 && Arg_0 <= 254 evalex3bb1in(Arg_0,Arg_1,Arg_2) -> evalex3bb3in(Arg_0,Arg_1,Arg_2):|:Arg_0 <= 0 evalex3bb1in(Arg_0,Arg_1,Arg_2) -> evalex3bb3in(Arg_0,Arg_1,Arg_2):|:255 <= Arg_0 evalex3bb2in(Arg_0,Arg_1,Arg_2) -> evalex3bb1in(Arg_0+1,Arg_1,Arg_2):|:Arg_0 <= 254 && 1 <= Arg_0 && Arg_2+1 <= 0 evalex3bb2in(Arg_0,Arg_1,Arg_2) -> evalex3bb1in(Arg_0+1,Arg_1,Arg_2):|:Arg_0 <= 254 && 1 <= Arg_0 && 1 <= Arg_2 evalex3bb2in(Arg_0,Arg_1,Arg_2) -> evalex3bb1in(Arg_0-1,Arg_1,Arg_2):|:Arg_0 <= 254 && 1 <= Arg_0 && Arg_2 <= 0 && 0 <= Arg_2 evalex3bb3in(Arg_0,Arg_1,Arg_2) -> evalex3stop(Arg_0,Arg_1,Arg_2):|: evalex3start(Arg_0,Arg_1,Arg_2) -> evalex3bb0in(Arg_0,Arg_1,Arg_2):|: Timebounds: Overall timebound: 4+6+max([0, -(Arg_1)+-255*Arg_2])+max([0, 255-Arg_1])+255*(max([0, 255*(-(Arg_1)+255*Arg_2)])+max([0, 255*(-(Arg_1)+-255*Arg_2)])+max([0, Arg_1]))+max([0, 255*(-(Arg_1)+255*Arg_2)])+max([0, -(Arg_1)+255*Arg_2])+max([0, 255*(-(Arg_1)+-255*Arg_2)])+max([0, Arg_1]) {O(n)} 2: evalex30->evalex31: 1 {O(1)} 3: evalex31->evalex32: 1 {O(1)} 4: evalex32->evalex33: 1 {O(1)} 5: evalex33->evalex34: 1 {O(1)} 6: evalex34->evalex3bb1in: 1 {O(1)} 1: evalex3bb0in->evalex30: 1 {O(1)} 7: evalex3bb1in->evalex3bb2in: 255*(max([0, 255*(-(Arg_1)+255*Arg_2)])+max([0, 255*(-(Arg_1)+-255*Arg_2)])+max([0, Arg_1]))+max([0, 255-Arg_1]) {O(n)} 8: evalex3bb1in->evalex3bb3in: 1 {O(1)} 9: evalex3bb1in->evalex3bb3in: 1 {O(1)} 10: evalex3bb2in->evalex3bb1in: max([0, -(Arg_1)+-255*Arg_2]) {O(n)} 11: evalex3bb2in->evalex3bb1in: max([0, -(Arg_1)+255*Arg_2]) {O(n)} 12: evalex3bb2in->evalex3bb1in: max([0, 255*(-(Arg_1)+255*Arg_2)])+max([0, 255*(-(Arg_1)+-255*Arg_2)])+max([0, Arg_1]) {O(n)} 13: evalex3bb3in->evalex3stop: 1 {O(1)} 0: evalex3start->evalex3bb0in: 1 {O(1)} Costbounds: Overall costbound: 4+6+max([0, -(Arg_1)+-255*Arg_2])+max([0, 255-Arg_1])+255*(max([0, 255*(-(Arg_1)+255*Arg_2)])+max([0, 255*(-(Arg_1)+-255*Arg_2)])+max([0, Arg_1]))+max([0, 255*(-(Arg_1)+255*Arg_2)])+max([0, -(Arg_1)+255*Arg_2])+max([0, 255*(-(Arg_1)+-255*Arg_2)])+max([0, Arg_1]) {O(n)} 2: evalex30->evalex31: 1 {O(1)} 3: evalex31->evalex32: 1 {O(1)} 4: evalex32->evalex33: 1 {O(1)} 5: evalex33->evalex34: 1 {O(1)} 6: evalex34->evalex3bb1in: 1 {O(1)} 1: evalex3bb0in->evalex30: 1 {O(1)} 7: evalex3bb1in->evalex3bb2in: 255*(max([0, 255*(-(Arg_1)+255*Arg_2)])+max([0, 255*(-(Arg_1)+-255*Arg_2)])+max([0, Arg_1]))+max([0, 255-Arg_1]) {O(n)} 8: evalex3bb1in->evalex3bb3in: 1 {O(1)} 9: evalex3bb1in->evalex3bb3in: 1 {O(1)} 10: evalex3bb2in->evalex3bb1in: max([0, -(Arg_1)+-255*Arg_2]) {O(n)} 11: evalex3bb2in->evalex3bb1in: max([0, -(Arg_1)+255*Arg_2]) {O(n)} 12: evalex3bb2in->evalex3bb1in: max([0, 255*(-(Arg_1)+255*Arg_2)])+max([0, 255*(-(Arg_1)+-255*Arg_2)])+max([0, Arg_1]) {O(n)} 13: evalex3bb3in->evalex3stop: 1 {O(1)} 0: evalex3start->evalex3bb0in: 1 {O(1)} Sizebounds: `Lower: 2: evalex30->evalex31, Arg_0: Arg_0 {O(n)} 2: evalex30->evalex31, Arg_1: Arg_1 {O(n)} 2: evalex30->evalex31, Arg_2: Arg_2 {O(n)} 3: evalex31->evalex32, Arg_0: Arg_0 {O(n)} 3: evalex31->evalex32, Arg_1: Arg_1 {O(n)} 3: evalex31->evalex32, Arg_2: Arg_2 {O(n)} 4: evalex32->evalex33, Arg_0: Arg_0 {O(n)} 4: evalex32->evalex33, Arg_1: Arg_1 {O(n)} 4: evalex32->evalex33, Arg_2: Arg_2 {O(n)} 5: evalex33->evalex34, Arg_0: Arg_0 {O(n)} 5: evalex33->evalex34, Arg_1: Arg_1 {O(n)} 5: evalex33->evalex34, Arg_2: Arg_2 {O(n)} 6: evalex34->evalex3bb1in, Arg_0: Arg_1 {O(n)} 6: evalex34->evalex3bb1in, Arg_1: Arg_1 {O(n)} 6: evalex34->evalex3bb1in, Arg_2: Arg_2 {O(n)} 1: evalex3bb0in->evalex30, Arg_0: Arg_0 {O(n)} 1: evalex3bb0in->evalex30, Arg_1: Arg_1 {O(n)} 1: evalex3bb0in->evalex30, Arg_2: Arg_2 {O(n)} 7: evalex3bb1in->evalex3bb2in, Arg_0: 1 {O(1)} 7: evalex3bb1in->evalex3bb2in, Arg_1: Arg_1 {O(n)} 7: evalex3bb1in->evalex3bb2in, Arg_2: min([0, Arg_2]) {O(n)} 8: evalex3bb1in->evalex3bb3in, Arg_0: min([0, Arg_1]) {O(n)} 8: evalex3bb1in->evalex3bb3in, Arg_1: Arg_1 {O(n)} 8: evalex3bb1in->evalex3bb3in, Arg_2: min([0, Arg_2]) {O(n)} 9: evalex3bb1in->evalex3bb3in, Arg_0: 255 {O(1)} 9: evalex3bb1in->evalex3bb3in, Arg_1: Arg_1 {O(n)} 9: evalex3bb1in->evalex3bb3in, Arg_2: min([0, min([1, Arg_2])]) {O(n)} 10: evalex3bb2in->evalex3bb1in, Arg_0: 2 {O(1)} 10: evalex3bb2in->evalex3bb1in, Arg_1: Arg_1 {O(n)} 10: evalex3bb2in->evalex3bb1in, Arg_2: min([0, Arg_2]) {O(n)} 11: evalex3bb2in->evalex3bb1in, Arg_0: 2 {O(1)} 11: evalex3bb2in->evalex3bb1in, Arg_1: Arg_1 {O(n)} 11: evalex3bb2in->evalex3bb1in, Arg_2: 1 {O(1)} 12: evalex3bb2in->evalex3bb1in, Arg_0: 0 {O(1)} 12: evalex3bb2in->evalex3bb1in, Arg_1: Arg_1 {O(n)} 12: evalex3bb2in->evalex3bb1in, Arg_2: 0 {O(1)} 13: evalex3bb3in->evalex3stop, Arg_0: min([255, min([0, Arg_1])]) {O(n)} 13: evalex3bb3in->evalex3stop, Arg_1: Arg_1 {O(n)} 13: evalex3bb3in->evalex3stop, Arg_2: min([1, min([0, Arg_2])]) {O(n)} 0: evalex3start->evalex3bb0in, Arg_0: Arg_0 {O(n)} 0: evalex3start->evalex3bb0in, Arg_1: Arg_1 {O(n)} 0: evalex3start->evalex3bb0in, Arg_2: Arg_2 {O(n)} `Upper: 2: evalex30->evalex31, Arg_0: Arg_0 {O(n)} 2: evalex30->evalex31, Arg_1: Arg_1 {O(n)} 2: evalex30->evalex31, Arg_2: Arg_2 {O(n)} 3: evalex31->evalex32, Arg_0: Arg_0 {O(n)} 3: evalex31->evalex32, Arg_1: Arg_1 {O(n)} 3: evalex31->evalex32, Arg_2: Arg_2 {O(n)} 4: evalex32->evalex33, Arg_0: Arg_0 {O(n)} 4: evalex32->evalex33, Arg_1: Arg_1 {O(n)} 4: evalex32->evalex33, Arg_2: Arg_2 {O(n)} 5: evalex33->evalex34, Arg_0: Arg_0 {O(n)} 5: evalex33->evalex34, Arg_1: Arg_1 {O(n)} 5: evalex33->evalex34, Arg_2: Arg_2 {O(n)} 6: evalex34->evalex3bb1in, Arg_0: Arg_1 {O(n)} 6: evalex34->evalex3bb1in, Arg_1: Arg_1 {O(n)} 6: evalex34->evalex3bb1in, Arg_2: Arg_2 {O(n)} 1: evalex3bb0in->evalex30, Arg_0: Arg_0 {O(n)} 1: evalex3bb0in->evalex30, Arg_1: Arg_1 {O(n)} 1: evalex3bb0in->evalex30, Arg_2: Arg_2 {O(n)} 7: evalex3bb1in->evalex3bb2in, Arg_0: 254 {O(1)} 7: evalex3bb1in->evalex3bb2in, Arg_1: Arg_1 {O(n)} 7: evalex3bb1in->evalex3bb2in, Arg_2: max([0, Arg_2]) {O(n)} 8: evalex3bb1in->evalex3bb3in, Arg_0: 0 {O(1)} 8: evalex3bb1in->evalex3bb3in, Arg_1: Arg_1 {O(n)} 8: evalex3bb1in->evalex3bb3in, Arg_2: max([0, Arg_2]) {O(n)} 9: evalex3bb1in->evalex3bb3in, Arg_0: max([255, Arg_1]) {O(n)} 9: evalex3bb1in->evalex3bb3in, Arg_1: Arg_1 {O(n)} 9: evalex3bb1in->evalex3bb3in, Arg_2: max([0, Arg_2]) {O(n)} 10: evalex3bb2in->evalex3bb1in, Arg_0: 255 {O(1)} 10: evalex3bb2in->evalex3bb1in, Arg_1: Arg_1 {O(n)} 10: evalex3bb2in->evalex3bb1in, Arg_2: -1 {O(1)} 11: evalex3bb2in->evalex3bb1in, Arg_0: 255 {O(1)} 11: evalex3bb2in->evalex3bb1in, Arg_1: Arg_1 {O(n)} 11: evalex3bb2in->evalex3bb1in, Arg_2: max([0, Arg_2]) {O(n)} 12: evalex3bb2in->evalex3bb1in, Arg_0: 253 {O(1)} 12: evalex3bb2in->evalex3bb1in, Arg_1: Arg_1 {O(n)} 12: evalex3bb2in->evalex3bb1in, Arg_2: 0 {O(1)} 13: evalex3bb3in->evalex3stop, Arg_0: max([255, Arg_1]) {O(n)} 13: evalex3bb3in->evalex3stop, Arg_1: Arg_1 {O(n)} 13: evalex3bb3in->evalex3stop, Arg_2: max([0, Arg_2]) {O(n)} 0: evalex3start->evalex3bb0in, Arg_0: Arg_0 {O(n)} 0: evalex3start->evalex3bb0in, Arg_1: Arg_1 {O(n)} 0: evalex3start->evalex3bb0in, Arg_2: Arg_2 {O(n)} ---------------------------------------- (2) BOUNDS(1, nat(-65280 * Arg_1 + -16646400 * Arg_2) + nat(256 * Arg_1) + nat(-1 * Arg_1 + 255 * Arg_2) + max(10 + -1 * Arg_1 + -255 * Arg_2, 10) + nat(255 + -1 * Arg_1) + nat(-65280 * Arg_1 + 16646400 * Arg_2))