/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, max(5, 5 + -16948680941280 * Arg_0 + 4304981706793560 * Arg_1) + nat(-4253917943760 * Arg_0 + -1080511905423480 * Arg_1) + nat(32967930 * Arg_0) + nat(510 + -2 * Arg_0) + nat(-1012 * Arg_0 + 257049 * Arg_1) + nat(-254 * Arg_0 + -64517 * Arg_1)). (0) CpxIntTrs (1) Koat2 Proof [FINISHED, 869 ms] (2) BOUNDS(1, max(5, 5 + -16948680941280 * Arg_0 + 4304981706793560 * Arg_1) + nat(-4253917943760 * Arg_0 + -1080511905423480 * Arg_1) + nat(32967930 * Arg_0) + nat(510 + -2 * Arg_0) + nat(-1012 * Arg_0 + 257049 * Arg_1) + nat(-254 * Arg_0 + -64517 * Arg_1)) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: evalfstart(A, B) -> Com_1(evalfentryin(A, B)) :|: TRUE evalfentryin(A, B) -> Com_1(evalfbb3in(B, A)) :|: TRUE evalfbb3in(A, B) -> Com_1(evalfbbin(A, B)) :|: B >= 1 && 254 >= B evalfbb3in(A, B) -> Com_1(evalfreturnin(A, B)) :|: 0 >= B evalfbb3in(A, B) -> Com_1(evalfreturnin(A, B)) :|: B >= 255 evalfbbin(A, B) -> Com_1(evalfbb1in(A, B)) :|: 0 >= A + 1 evalfbbin(A, B) -> Com_1(evalfbb1in(A, B)) :|: A >= 1 evalfbbin(A, B) -> Com_1(evalfbb2in(A, B)) :|: A >= 0 && A <= 0 evalfbb1in(A, B) -> Com_1(evalfbb3in(A, B + 1)) :|: TRUE evalfbb2in(A, B) -> Com_1(evalfbb3in(A, B - 1)) :|: TRUE evalfreturnin(A, B) -> Com_1(evalfstop(A, B)) :|: TRUE The start-symbols are:[evalfstart_2] ---------------------------------------- (1) Koat2 Proof (FINISHED) YES( ?, 5+2*64770*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]))+254*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]))+max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 255-Arg_0])+max([0, 257049*Arg_1+-1012*Arg_0])+max([0, 255-Arg_0])+max([0, -64517*Arg_1+-254*Arg_0])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]) {O(n)}) Initial Complexity Problem: Start: evalfstart Program_Vars: Arg_0, Arg_1 Temp_Vars: Locations: evalfbb1in, evalfbb2in, evalfbb3in, evalfbbin, evalfentryin, evalfreturnin, evalfstart, evalfstop Transitions: evalfbb1in(Arg_0,Arg_1) -> evalfbb3in(Arg_0,Arg_1+1):|:Arg_1 <= 254 && 1 <= Arg_1 evalfbb2in(Arg_0,Arg_1) -> evalfbb3in(Arg_0,Arg_1-1):|:Arg_1 <= 254 && Arg_1 <= 254+Arg_0 && Arg_0+Arg_1 <= 254 && 1 <= Arg_1 && 1 <= Arg_0+Arg_1 && 1+Arg_0 <= Arg_1 && Arg_0 <= 0 && 0 <= Arg_0 evalfbb3in(Arg_0,Arg_1) -> evalfbbin(Arg_0,Arg_1):|:1 <= Arg_1 && Arg_1 <= 254 evalfbb3in(Arg_0,Arg_1) -> evalfreturnin(Arg_0,Arg_1):|:Arg_1 <= 0 evalfbb3in(Arg_0,Arg_1) -> evalfreturnin(Arg_0,Arg_1):|:255 <= Arg_1 evalfbbin(Arg_0,Arg_1) -> evalfbb1in(Arg_0,Arg_1):|:Arg_1 <= 254 && 1 <= Arg_1 && Arg_0+1 <= 0 evalfbbin(Arg_0,Arg_1) -> evalfbb1in(Arg_0,Arg_1):|:Arg_1 <= 254 && 1 <= Arg_1 && 1 <= Arg_0 evalfbbin(Arg_0,Arg_1) -> evalfbb2in(Arg_0,Arg_1):|:Arg_1 <= 254 && 1 <= Arg_1 && Arg_0 <= 0 && 0 <= Arg_0 evalfentryin(Arg_0,Arg_1) -> evalfbb3in(Arg_1,Arg_0):|: evalfreturnin(Arg_0,Arg_1) -> evalfstop(Arg_0,Arg_1):|: evalfstart(Arg_0,Arg_1) -> evalfentryin(Arg_0,Arg_1):|: Timebounds: Overall timebound: 5+2*64770*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]))+254*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]))+max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 255-Arg_0])+max([0, 257049*Arg_1+-1012*Arg_0])+max([0, 255-Arg_0])+max([0, -64517*Arg_1+-254*Arg_0])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]) {O(n)} 8: evalfbb1in->evalfbb3in: 64770*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]))+max([0, 255-Arg_0]) {O(n)} 9: evalfbb2in->evalfbb3in: 254*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0])) {O(n)} 2: evalfbb3in->evalfbbin: 64770*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]))+max([0, 255-Arg_0]) {O(n)} 3: evalfbb3in->evalfreturnin: 1 {O(1)} 4: evalfbb3in->evalfreturnin: 1 {O(1)} 5: evalfbbin->evalfbb1in: max([0, -64517*Arg_1+-254*Arg_0]) {O(n)} 6: evalfbbin->evalfbb1in: max([0, 257049*Arg_1+-1012*Arg_0]) {O(n)} 7: evalfbbin->evalfbb2in: max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]) {O(n)} 1: evalfentryin->evalfbb3in: 1 {O(1)} 10: evalfreturnin->evalfstop: 1 {O(1)} 0: evalfstart->evalfentryin: 1 {O(1)} Costbounds: Overall costbound: 5+2*64770*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]))+254*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]))+max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 255-Arg_0])+max([0, 257049*Arg_1+-1012*Arg_0])+max([0, 255-Arg_0])+max([0, -64517*Arg_1+-254*Arg_0])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]) {O(n)} 8: evalfbb1in->evalfbb3in: 64770*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]))+max([0, 255-Arg_0]) {O(n)} 9: evalfbb2in->evalfbb3in: 254*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0])) {O(n)} 2: evalfbb3in->evalfbbin: 64770*(max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]))+max([0, 255-Arg_0]) {O(n)} 3: evalfbb3in->evalfreturnin: 1 {O(1)} 4: evalfbb3in->evalfreturnin: 1 {O(1)} 5: evalfbbin->evalfbb1in: max([0, -64517*Arg_1+-254*Arg_0]) {O(n)} 6: evalfbbin->evalfbb1in: max([0, 257049*Arg_1+-1012*Arg_0]) {O(n)} 7: evalfbbin->evalfbb2in: max([0, 129032*(257049*Arg_1+-1012*Arg_0)])+max([0, 129032*(-64517*Arg_1+-254*Arg_0)])+max([0, 254*Arg_0]) {O(n)} 1: evalfentryin->evalfbb3in: 1 {O(1)} 10: evalfreturnin->evalfstop: 1 {O(1)} 0: evalfstart->evalfentryin: 1 {O(1)} Sizebounds: `Lower: 8: evalfbb1in->evalfbb3in, Arg_0: min([0, Arg_1]) {O(n)} 8: evalfbb1in->evalfbb3in, Arg_1: 2 {O(1)} 9: evalfbb2in->evalfbb3in, Arg_0: 0 {O(1)} 9: evalfbb2in->evalfbb3in, Arg_1: 0 {O(1)} 2: evalfbb3in->evalfbbin, Arg_0: min([0, Arg_1]) {O(n)} 2: evalfbb3in->evalfbbin, Arg_1: 1 {O(1)} 3: evalfbb3in->evalfreturnin, Arg_0: min([0, Arg_1]) {O(n)} 3: evalfbb3in->evalfreturnin, Arg_1: min([0, Arg_0]) {O(n)} 4: evalfbb3in->evalfreturnin, Arg_0: min([0, Arg_1]) {O(n)} 4: evalfbb3in->evalfreturnin, Arg_1: 255 {O(1)} 5: evalfbbin->evalfbb1in, Arg_0: min([0, Arg_1]) {O(n)} 5: evalfbbin->evalfbb1in, Arg_1: 1 {O(1)} 6: evalfbbin->evalfbb1in, Arg_0: 1 {O(1)} 6: evalfbbin->evalfbb1in, Arg_1: 1 {O(1)} 7: evalfbbin->evalfbb2in, Arg_0: 0 {O(1)} 7: evalfbbin->evalfbb2in, Arg_1: 1 {O(1)} 1: evalfentryin->evalfbb3in, Arg_0: Arg_1 {O(n)} 1: evalfentryin->evalfbb3in, Arg_1: Arg_0 {O(n)} 10: evalfreturnin->evalfstop, Arg_0: min([0, Arg_1]) {O(n)} 10: evalfreturnin->evalfstop, Arg_1: min([255, min([0, Arg_0])]) {O(n)} 0: evalfstart->evalfentryin, Arg_0: Arg_0 {O(n)} 0: evalfstart->evalfentryin, Arg_1: Arg_1 {O(n)} `Upper: 8: evalfbb1in->evalfbb3in, Arg_0: max([0, Arg_1]) {O(n)} 8: evalfbb1in->evalfbb3in, Arg_1: 255 {O(1)} 9: evalfbb2in->evalfbb3in, Arg_0: 0 {O(1)} 9: evalfbb2in->evalfbb3in, Arg_1: 253 {O(1)} 2: evalfbb3in->evalfbbin, Arg_0: max([0, Arg_1]) {O(n)} 2: evalfbb3in->evalfbbin, Arg_1: 254 {O(1)} 3: evalfbb3in->evalfreturnin, Arg_0: max([0, Arg_1]) {O(n)} 3: evalfbb3in->evalfreturnin, Arg_1: 0 {O(1)} 4: evalfbb3in->evalfreturnin, Arg_0: max([0, Arg_1]) {O(n)} 4: evalfbb3in->evalfreturnin, Arg_1: max([255, Arg_0]) {O(n)} 5: evalfbbin->evalfbb1in, Arg_0: -1 {O(1)} 5: evalfbbin->evalfbb1in, Arg_1: 254 {O(1)} 6: evalfbbin->evalfbb1in, Arg_0: max([0, Arg_1]) {O(n)} 6: evalfbbin->evalfbb1in, Arg_1: 254 {O(1)} 7: evalfbbin->evalfbb2in, Arg_0: 0 {O(1)} 7: evalfbbin->evalfbb2in, Arg_1: 254 {O(1)} 1: evalfentryin->evalfbb3in, Arg_0: Arg_1 {O(n)} 1: evalfentryin->evalfbb3in, Arg_1: Arg_0 {O(n)} 10: evalfreturnin->evalfstop, Arg_0: max([0, Arg_1]) {O(n)} 10: evalfreturnin->evalfstop, Arg_1: max([255, Arg_0]) {O(n)} 0: evalfstart->evalfentryin, Arg_0: Arg_0 {O(n)} 0: evalfstart->evalfentryin, Arg_1: Arg_1 {O(n)} ---------------------------------------- (2) BOUNDS(1, max(5, 5 + -16948680941280 * Arg_0 + 4304981706793560 * Arg_1) + nat(-4253917943760 * Arg_0 + -1080511905423480 * Arg_1) + nat(32967930 * Arg_0) + nat(510 + -2 * Arg_0) + nat(-1012 * Arg_0 + 257049 * Arg_1) + nat(-254 * Arg_0 + -64517 * Arg_1))