4.07/2.12 WORST_CASE(?, O(n^1)) 4.07/2.13 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 4.07/2.13 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.07/2.13 4.07/2.13 4.07/2.13 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(1, max(3, 105 + -1 * Arg_0 + Arg_1 + -1 * Arg_2) + max(2, 103 + -1 * Arg_0 + Arg_1 + -1 * Arg_2)). 4.07/2.13 4.07/2.13 (0) CpxIntTrs 4.07/2.13 (1) Koat2 Proof [FINISHED, 459 ms] 4.07/2.13 (2) BOUNDS(1, max(3, 105 + -1 * Arg_0 + Arg_1 + -1 * Arg_2) + max(2, 103 + -1 * Arg_0 + Arg_1 + -1 * Arg_2)) 4.07/2.13 4.07/2.13 4.07/2.13 ---------------------------------------- 4.07/2.13 4.07/2.13 (0) 4.07/2.13 Obligation: 4.07/2.13 Complexity Int TRS consisting of the following rules: 4.07/2.13 evalexministart(A, B, C) -> Com_1(evalexminientryin(A, B, C)) :|: TRUE 4.07/2.13 evalexminientryin(A, B, C) -> Com_1(evalexminibb1in(B, A, C)) :|: TRUE 4.07/2.13 evalexminibb1in(A, B, C) -> Com_1(evalexminibbin(A, B, C)) :|: 100 >= B && A >= C 4.07/2.13 evalexminibb1in(A, B, C) -> Com_1(evalexminireturnin(A, B, C)) :|: B >= 101 4.07/2.13 evalexminibb1in(A, B, C) -> Com_1(evalexminireturnin(A, B, C)) :|: C >= A + 1 4.07/2.13 evalexminibbin(A, B, C) -> Com_1(evalexminibb1in(A - 1, C, B + 1)) :|: TRUE 4.07/2.13 evalexminireturnin(A, B, C) -> Com_1(evalexministop(A, B, C)) :|: TRUE 4.07/2.13 4.07/2.13 The start-symbols are:[evalexministart_3] 4.07/2.13 4.07/2.13 4.07/2.13 ---------------------------------------- 4.07/2.13 4.07/2.13 (1) Koat2 Proof (FINISHED) 4.07/2.13 YES( ?, 3+max([0, 102+Arg_1+-(Arg_2)-Arg_0])+max([2, 103+Arg_1+-(Arg_2)-Arg_0]) {O(n)}) 4.07/2.13 4.07/2.13 4.07/2.13 4.07/2.13 Initial Complexity Problem: 4.07/2.13 4.07/2.13 Start: evalexministart 4.07/2.13 4.07/2.13 Program_Vars: Arg_0, Arg_1, Arg_2 4.07/2.13 4.07/2.13 Temp_Vars: 4.07/2.13 4.07/2.13 Locations: evalexminibb1in, evalexminibbin, evalexminientryin, evalexminireturnin, evalexministart, evalexministop 4.07/2.13 4.07/2.13 Transitions: 4.07/2.13 4.07/2.13 evalexminibb1in(Arg_0,Arg_1,Arg_2) -> evalexminibbin(Arg_0,Arg_1,Arg_2):|:Arg_1 <= 100 && Arg_2 <= Arg_0 4.07/2.13 4.07/2.13 evalexminibb1in(Arg_0,Arg_1,Arg_2) -> evalexminireturnin(Arg_0,Arg_1,Arg_2):|:101 <= Arg_1 4.07/2.13 4.07/2.13 evalexminibb1in(Arg_0,Arg_1,Arg_2) -> evalexminireturnin(Arg_0,Arg_1,Arg_2):|:Arg_0+1 <= Arg_2 4.07/2.13 4.07/2.13 evalexminibbin(Arg_0,Arg_1,Arg_2) -> evalexminibb1in(Arg_0-1,Arg_2,Arg_1+1):|:Arg_2 <= Arg_0 && Arg_1 <= 100 4.07/2.13 4.07/2.13 evalexminientryin(Arg_0,Arg_1,Arg_2) -> evalexminibb1in(Arg_1,Arg_0,Arg_2):|: 4.07/2.13 4.07/2.13 evalexminireturnin(Arg_0,Arg_1,Arg_2) -> evalexministop(Arg_0,Arg_1,Arg_2):|: 4.07/2.13 4.07/2.13 evalexministart(Arg_0,Arg_1,Arg_2) -> evalexminientryin(Arg_0,Arg_1,Arg_2):|: 4.07/2.13 4.07/2.13 4.07/2.13 4.07/2.13 Timebounds: 4.07/2.13 4.07/2.13 Overall timebound: 3+max([0, 102+Arg_1+-(Arg_2)-Arg_0])+max([2, 103+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 2: evalexminibb1in->evalexminibbin: max([0, 101+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 3: evalexminibb1in->evalexminireturnin: 1 {O(1)} 4.07/2.13 4.07/2.13 4: evalexminibb1in->evalexminireturnin: 1 {O(1)} 4.07/2.13 4.07/2.13 5: evalexminibbin->evalexminibb1in: max([0, 102+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 1: evalexminientryin->evalexminibb1in: 1 {O(1)} 4.07/2.13 4.07/2.13 6: evalexminireturnin->evalexministop: 1 {O(1)} 4.07/2.13 4.07/2.13 0: evalexministart->evalexminientryin: 1 {O(1)} 4.07/2.13 4.07/2.13 4.07/2.13 4.07/2.13 Costbounds: 4.07/2.13 4.07/2.13 Overall costbound: 3+max([0, 102+Arg_1+-(Arg_2)-Arg_0])+max([2, 103+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 2: evalexminibb1in->evalexminibbin: max([0, 101+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 3: evalexminibb1in->evalexminireturnin: 1 {O(1)} 4.07/2.13 4.07/2.13 4: evalexminibb1in->evalexminireturnin: 1 {O(1)} 4.07/2.13 4.07/2.13 5: evalexminibbin->evalexminibb1in: max([0, 102+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 1: evalexminientryin->evalexminibb1in: 1 {O(1)} 4.07/2.13 4.07/2.13 6: evalexminireturnin->evalexministop: 1 {O(1)} 4.07/2.13 4.07/2.13 0: evalexministart->evalexminientryin: 1 {O(1)} 4.07/2.13 4.07/2.13 4.07/2.13 4.07/2.13 Sizebounds: 4.07/2.13 4.07/2.13 `Lower: 4.07/2.13 4.07/2.13 2: evalexminibb1in->evalexminibbin, Arg_0: Arg_1-max([0, 102+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 2: evalexminibb1in->evalexminibbin, Arg_1: min([Arg_2, Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 2: evalexminibb1in->evalexminibbin, Arg_2: min([Arg_2, Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 3: evalexminibb1in->evalexminireturnin, Arg_0: min([Arg_1, -(-(Arg_1)+max([0, 102+Arg_1+-(Arg_2)-Arg_0]))]) {O(n)} 4.07/2.13 4.07/2.13 3: evalexminibb1in->evalexminireturnin, Arg_1: 101 {O(1)} 4.07/2.13 4.07/2.13 3: evalexminibb1in->evalexminireturnin, Arg_2: min([Arg_2, min([Arg_2, Arg_0])]) {O(n)} 4.07/2.13 4.07/2.13 4: evalexminibb1in->evalexminireturnin, Arg_0: min([Arg_1, -(-(Arg_1)+max([0, 102+Arg_1+-(Arg_2)-Arg_0]))]) {O(n)} 4.07/2.13 4.07/2.13 4: evalexminibb1in->evalexminireturnin, Arg_1: min([Arg_0, min([Arg_2, Arg_0])]) {O(n)} 4.07/2.13 4.07/2.13 4: evalexminibb1in->evalexminireturnin, Arg_2: min([Arg_2, min([Arg_2, Arg_0])]) {O(n)} 4.07/2.13 4.07/2.13 5: evalexminibbin->evalexminibb1in, Arg_0: Arg_1-max([0, 102+Arg_1+-(Arg_2)-Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 5: evalexminibbin->evalexminibb1in, Arg_1: min([Arg_2, Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 5: evalexminibbin->evalexminibb1in, Arg_2: min([Arg_2, Arg_0]) {O(n)} 4.07/2.13 4.07/2.13 1: evalexminientryin->evalexminibb1in, Arg_0: Arg_1 {O(n)} 4.07/2.13 4.07/2.13 1: evalexminientryin->evalexminibb1in, Arg_1: Arg_0 {O(n)} 4.07/2.13 4.07/2.13 1: evalexminientryin->evalexminibb1in, Arg_2: Arg_2 {O(n)} 4.07/2.13 4.07/2.13 6: evalexminireturnin->evalexministop, Arg_0: min([Arg_1, -(-(Arg_1)+max([0, 102+Arg_1+-(Arg_2)-Arg_0]))]) {O(n)} 4.07/2.13 4.07/2.13 6: evalexminireturnin->evalexministop, Arg_1: min([101, min([Arg_2, Arg_0])]) {O(n)} 4.07/2.13 4.07/2.13 6: evalexminireturnin->evalexministop, Arg_2: min([Arg_2, min([Arg_2, Arg_0])]) {O(n)} 4.07/2.13 4.07/2.13 0: evalexministart->evalexminientryin, Arg_0: Arg_0 {O(n)} 4.07/2.13 4.07/2.13 0: evalexministart->evalexminientryin, Arg_1: Arg_1 {O(n)} 4.07/2.13 4.07/2.13 0: evalexministart->evalexminientryin, Arg_2: Arg_2 {O(n)} 4.07/2.13 4.07/2.13 `Upper: 4.07/2.13 4.07/2.13 2: evalexminibb1in->evalexminibbin, Arg_0: Arg_1 {O(n)} 4.07/2.13 4.07/2.13 2: evalexminibb1in->evalexminibbin, Arg_1: 100 {O(1)} 4.07/2.13 4.07/2.13 2: evalexminibb1in->evalexminibbin, Arg_2: max([101, Arg_2]) {O(n)} 4.07/2.13 4.07/2.13 3: evalexminibb1in->evalexminireturnin, Arg_0: Arg_1 {O(n)} 4.07/2.13 4.07/2.13 3: evalexminibb1in->evalexminireturnin, Arg_1: max([101, max([Arg_0, Arg_2])]) {O(n)} 4.07/2.13 4.07/2.13 3: evalexminibb1in->evalexminireturnin, Arg_2: max([101, Arg_2]) {O(n)} 4.07/2.13 4.07/2.13 4: evalexminibb1in->evalexminireturnin, Arg_0: Arg_1 {O(n)} 4.07/2.13 4.07/2.13 4: evalexminibb1in->evalexminireturnin, Arg_1: max([101, max([Arg_0, Arg_2])]) {O(n)} 4.07/2.13 4.07/2.13 4: evalexminibb1in->evalexminireturnin, Arg_2: max([101, Arg_2]) {O(n)} 4.07/2.13 4.07/2.13 5: evalexminibbin->evalexminibb1in, Arg_0: Arg_1 {O(n)} 4.07/2.13 4.07/2.13 5: evalexminibbin->evalexminibb1in, Arg_1: max([101, Arg_2]) {O(n)} 4.07/2.13 4.07/2.13 5: evalexminibbin->evalexminibb1in, Arg_2: 101 {O(1)} 4.07/2.13 4.07/2.13 1: evalexminientryin->evalexminibb1in, Arg_0: Arg_1 {O(n)} 4.07/2.13 4.07/2.13 1: evalexminientryin->evalexminibb1in, Arg_1: Arg_0 {O(n)} 4.07/2.13 4.07/2.13 1: evalexminientryin->evalexminibb1in, Arg_2: Arg_2 {O(n)} 4.07/2.13 4.07/2.13 6: evalexminireturnin->evalexministop, Arg_0: Arg_1 {O(n)} 4.07/2.13 4.07/2.13 6: evalexminireturnin->evalexministop, Arg_1: max([101, max([Arg_0, Arg_2])]) {O(n)} 4.07/2.13 4.07/2.13 6: evalexminireturnin->evalexministop, Arg_2: max([101, Arg_2]) {O(n)} 4.07/2.13 4.07/2.13 0: evalexministart->evalexminientryin, Arg_0: Arg_0 {O(n)} 4.07/2.13 4.07/2.13 0: evalexministart->evalexminientryin, Arg_1: Arg_1 {O(n)} 4.07/2.13 4.07/2.13 0: evalexministart->evalexminientryin, Arg_2: Arg_2 {O(n)} 4.07/2.13 4.07/2.13 4.07/2.13 ---------------------------------------- 4.07/2.13 4.07/2.13 (2) 4.07/2.13 BOUNDS(1, max(3, 105 + -1 * Arg_0 + Arg_1 + -1 * Arg_2) + max(2, 103 + -1 * Arg_0 + Arg_1 + -1 * Arg_2)) 4.07/2.16 EOF