/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(3, 104 + -1 * Arg_0 + Arg_1 + -1 * Arg_2) + max(2, 103 + -1 * Arg_0 + Arg_1 + -1 * Arg_2)). (0) CpxIntTrs (1) Koat2 Proof [FINISHED, 482 ms] (2) BOUNDS(1, max(3, 104 + -1 * Arg_0 + Arg_1 + -1 * Arg_2) + max(2, 103 + -1 * Arg_0 + Arg_1 + -1 * Arg_2)) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: evalexministart(A, B, C) -> Com_1(evalexminientryin(A, B, C)) :|: TRUE evalexminientryin(A, B, C) -> Com_1(evalexminibb1in(B, A, C)) :|: TRUE evalexminibb1in(A, B, C) -> Com_1(evalexminibbin(A, B, C)) :|: 100 >= B && A >= C evalexminibb1in(A, B, C) -> Com_1(evalexminireturnin(A, B, C)) :|: B >= 101 evalexminibb1in(A, B, C) -> Com_1(evalexminireturnin(A, B, C)) :|: C >= A + 1 evalexminibbin(A, B, C) -> Com_1(evalexminibb1in(A - 1, C, B + 1)) :|: TRUE evalexminireturnin(A, B, C) -> Com_1(evalexministop(A, B, C)) :|: TRUE The start-symbols are:[evalexministart_3] ---------------------------------------- (1) Koat2 Proof (FINISHED) YES( ?, 3+max([0, 101+Arg_1+-(Arg_2)-Arg_0])+max([2, 103+Arg_1+-(Arg_2)-Arg_0]) {O(n)}) Initial Complexity Problem: Start: evalexministart Program_Vars: Arg_0, Arg_1, Arg_2 Temp_Vars: Locations: evalexminibb1in, evalexminibbin, evalexminientryin, evalexminireturnin, evalexministart, evalexministop Transitions: 2: evalexminibb1in->evalexminibbin 3: evalexminibb1in->evalexminireturnin 4: evalexminibb1in->evalexminireturnin 5: evalexminibbin->evalexminibb1in 1: evalexminientryin->evalexminibb1in 6: evalexminireturnin->evalexministop 0: evalexministart->evalexminientryin Timebounds: Overall timebound: 3+max([0, 101+Arg_1+-(Arg_2)-Arg_0])+max([2, 103+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 2: evalexminibb1in->evalexminibbin: max([0, 101+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 3: evalexminibb1in->evalexminireturnin: 1 {O(1)} 4: evalexminibb1in->evalexminireturnin: 1 {O(1)} 5: evalexminibbin->evalexminibb1in: max([0, 101+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 1: evalexminientryin->evalexminibb1in: 1 {O(1)} 6: evalexminireturnin->evalexministop: 1 {O(1)} 0: evalexministart->evalexminientryin: 1 {O(1)} Costbounds: Overall costbound: 3+max([0, 101+Arg_1+-(Arg_2)-Arg_0])+max([2, 103+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 2: evalexminibb1in->evalexminibbin: max([0, 101+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 3: evalexminibb1in->evalexminireturnin: 1 {O(1)} 4: evalexminibb1in->evalexminireturnin: 1 {O(1)} 5: evalexminibbin->evalexminibb1in: max([0, 101+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 1: evalexminientryin->evalexminibb1in: 1 {O(1)} 6: evalexminireturnin->evalexministop: 1 {O(1)} 0: evalexministart->evalexminientryin: 1 {O(1)} Sizebounds: `Lower: 2: evalexminibb1in->evalexminibbin, Arg_0: Arg_1-max([0, 101+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 2: evalexminibb1in->evalexminibbin, Arg_1: min([Arg_2, Arg_0]) {O(n)} 2: evalexminibb1in->evalexminibbin, Arg_2: min([Arg_2, Arg_0]) {O(n)} 3: evalexminibb1in->evalexminireturnin, Arg_0: min([Arg_1, -(-(Arg_1)+max([0, 101+Arg_1+-(Arg_2)-Arg_0]))]) {O(n)} 3: evalexminibb1in->evalexminireturnin, Arg_1: 101 {O(1)} 3: evalexminibb1in->evalexminireturnin, Arg_2: min([Arg_2, min([Arg_2, Arg_0])]) {O(n)} 4: evalexminibb1in->evalexminireturnin, Arg_0: min([Arg_1, -(-(Arg_1)+max([0, 101+Arg_1+-(Arg_2)-Arg_0]))]) {O(n)} 4: evalexminibb1in->evalexminireturnin, Arg_1: min([Arg_0, min([Arg_2, Arg_0])]) {O(n)} 4: evalexminibb1in->evalexminireturnin, Arg_2: min([Arg_2, min([Arg_2, Arg_0])]) {O(n)} 5: evalexminibbin->evalexminibb1in, Arg_0: Arg_1-max([0, 101+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 5: evalexminibbin->evalexminibb1in, Arg_1: min([Arg_2, Arg_0]) {O(n)} 5: evalexminibbin->evalexminibb1in, Arg_2: min([Arg_2, Arg_0]) {O(n)} 1: evalexminientryin->evalexminibb1in, Arg_0: Arg_1 {O(n)} 1: evalexminientryin->evalexminibb1in, Arg_1: Arg_0 {O(n)} 1: evalexminientryin->evalexminibb1in, Arg_2: Arg_2 {O(n)} 6: evalexminireturnin->evalexministop, Arg_0: min([Arg_1, -(-(Arg_1)+max([0, 101+Arg_1+-(Arg_2)-Arg_0]))]) {O(n)} 6: evalexminireturnin->evalexministop, Arg_1: min([101, min([Arg_2, Arg_0])]) {O(n)} 6: evalexminireturnin->evalexministop, Arg_2: min([Arg_2, min([Arg_2, Arg_0])]) {O(n)} 0: evalexministart->evalexminientryin, Arg_0: Arg_0 {O(n)} 0: evalexministart->evalexminientryin, Arg_1: Arg_1 {O(n)} 0: evalexministart->evalexminientryin, Arg_2: Arg_2 {O(n)} `Upper: 2: evalexminibb1in->evalexminibbin, Arg_0: Arg_1 {O(n)} 2: evalexminibb1in->evalexminibbin, Arg_1: 100 {O(1)} 2: evalexminibb1in->evalexminibbin, Arg_2: max([101, Arg_2]) {O(n)} 3: evalexminibb1in->evalexminireturnin, Arg_0: Arg_1 {O(n)} 3: evalexminibb1in->evalexminireturnin, Arg_1: max([101, max([Arg_0, Arg_2])]) {O(n)} 3: evalexminibb1in->evalexminireturnin, Arg_2: max([101, Arg_2]) {O(n)} 4: evalexminibb1in->evalexminireturnin, Arg_0: Arg_1 {O(n)} 4: evalexminibb1in->evalexminireturnin, Arg_1: max([101, max([Arg_0, Arg_2])]) {O(n)} 4: evalexminibb1in->evalexminireturnin, Arg_2: max([101, Arg_2]) {O(n)} 5: evalexminibbin->evalexminibb1in, Arg_0: Arg_1 {O(n)} 5: evalexminibbin->evalexminibb1in, Arg_1: max([101, Arg_2]) {O(n)} 5: evalexminibbin->evalexminibb1in, Arg_2: 101 {O(1)} 1: evalexminientryin->evalexminibb1in, Arg_0: Arg_1 {O(n)} 1: evalexminientryin->evalexminibb1in, Arg_1: Arg_0 {O(n)} 1: evalexminientryin->evalexminibb1in, Arg_2: Arg_2 {O(n)} 6: evalexminireturnin->evalexministop, Arg_0: Arg_1 {O(n)} 6: evalexminireturnin->evalexministop, Arg_1: max([101, max([Arg_0, Arg_2])]) {O(n)} 6: evalexminireturnin->evalexministop, Arg_2: max([101, Arg_2]) {O(n)} 0: evalexministart->evalexminientryin, Arg_0: Arg_0 {O(n)} 0: evalexministart->evalexminientryin, Arg_1: Arg_1 {O(n)} 0: evalexministart->evalexminientryin, Arg_2: Arg_2 {O(n)} ---------------------------------------- (2) BOUNDS(1, max(3, 104 + -1 * Arg_0 + Arg_1 + -1 * Arg_2) + max(2, 103 + -1 * Arg_0 + Arg_1 + -1 * Arg_2))