3.83/2.33 WORST_CASE(?, O(n^1)) 3.83/2.33 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 3.83/2.33 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.83/2.33 3.83/2.33 3.83/2.33 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(1, max(2, 2 + 5 * Arg_3)). 3.83/2.33 3.83/2.33 (0) CpxIntTrs 3.83/2.33 (1) Koat2 Proof [FINISHED, 349 ms] 3.83/2.33 (2) BOUNDS(1, max(2, 2 + 5 * Arg_3)) 3.83/2.33 3.83/2.33 3.83/2.33 ---------------------------------------- 3.83/2.33 3.83/2.33 (0) 3.83/2.33 Obligation: 3.83/2.33 Complexity Int TRS consisting of the following rules: 3.83/2.33 sqrt(A, B, C, D) -> Com_1(f(0, 1, 1, D)) :|: TRUE 3.83/2.33 f(A, B, C, D) -> Com_1(f(A + 1, B + 2, C + B + 2, D)) :|: D >= C && B >= 0 3.83/2.33 f(A, B, C, D) -> Com_1(end(A, B, C, D)) :|: C >= D + 1 3.83/2.33 3.83/2.33 The start-symbols are:[sqrt_4] 3.83/2.33 3.83/2.33 3.83/2.33 ---------------------------------------- 3.83/2.33 3.83/2.33 (1) Koat2 Proof (FINISHED) 3.83/2.33 YES( ?, max([2, 2+5*Arg_3]) {O(n)}) 3.83/2.33 3.83/2.33 3.83/2.33 3.83/2.33 Initial Complexity Problem: 3.83/2.33 3.83/2.33 Start: sqrt 3.83/2.33 3.83/2.33 Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3 3.83/2.33 3.83/2.33 Temp_Vars: 3.83/2.33 3.83/2.33 Locations: end, f, sqrt 3.83/2.33 3.83/2.33 Transitions: 3.83/2.33 3.83/2.33 f(Arg_0,Arg_1,Arg_2,Arg_3) -> end(Arg_0,Arg_1,Arg_2,Arg_3):|:1 <= Arg_2 && 2 <= Arg_1+Arg_2 && Arg_1 <= Arg_2 && 1 <= Arg_0+Arg_2 && 1+Arg_0 <= Arg_2 && 1 <= Arg_1 && 1 <= Arg_0+Arg_1 && 1+Arg_0 <= Arg_1 && 0 <= Arg_0 && Arg_3+1 <= Arg_2 3.83/2.33 3.83/2.33 f(Arg_0,Arg_1,Arg_2,Arg_3) -> f(Arg_0+1,Arg_1+2,Arg_2+Arg_1+2,Arg_3):|:1 <= Arg_2 && 2 <= Arg_1+Arg_2 && Arg_1 <= Arg_2 && 1 <= Arg_0+Arg_2 && 1+Arg_0 <= Arg_2 && 1 <= Arg_1 && 1 <= Arg_0+Arg_1 && 1+Arg_0 <= Arg_1 && 0 <= Arg_0 && Arg_2 <= Arg_3 && 0 <= Arg_1 3.83/2.33 3.83/2.33 sqrt(Arg_0,Arg_1,Arg_2,Arg_3) -> f(0,1,1,Arg_3):|: 3.83/2.33 3.83/2.33 3.83/2.33 3.83/2.33 Timebounds: 3.83/2.33 3.83/2.33 Overall timebound: max([2, 2+5*Arg_3]) {O(n)} 3.83/2.33 3.83/2.33 1: f->f: max([0, 5*Arg_3]) {O(n)} 3.83/2.33 3.83/2.33 2: f->end: 1 {O(1)} 3.83/2.33 3.83/2.33 0: sqrt->f: 1 {O(1)} 3.83/2.33 3.83/2.33 3.83/2.33 3.83/2.33 Costbounds: 3.83/2.33 3.83/2.33 Overall costbound: max([2, 2+5*Arg_3]) {O(n)} 3.83/2.33 3.83/2.33 1: f->f: max([0, 5*Arg_3]) {O(n)} 3.83/2.33 3.83/2.33 2: f->end: 1 {O(1)} 3.83/2.33 3.83/2.33 0: sqrt->f: 1 {O(1)} 3.83/2.33 3.83/2.33 3.83/2.33 3.83/2.33 Sizebounds: 3.83/2.33 3.83/2.33 `Lower: 3.83/2.33 3.83/2.33 1: f->f, Arg_0: 1 {O(1)} 3.83/2.33 3.83/2.33 1: f->f, Arg_1: 3 {O(1)} 3.83/2.33 3.83/2.33 1: f->f, Arg_2: 4 {O(1)} 3.83/2.33 3.83/2.33 1: f->f, Arg_3: 1 {O(1)} 3.83/2.33 3.83/2.33 2: f->end, Arg_0: 0 {O(1)} 3.83/2.33 3.83/2.33 2: f->end, Arg_1: 1 {O(1)} 3.83/2.33 3.83/2.33 2: f->end, Arg_2: 1 {O(1)} 3.83/2.33 3.83/2.33 2: f->end, Arg_3: min([1, Arg_3]) {O(n)} 3.83/2.33 3.83/2.33 0: sqrt->f, Arg_0: 0 {O(1)} 3.83/2.33 3.83/2.33 0: sqrt->f, Arg_1: 1 {O(1)} 3.83/2.33 3.83/2.33 0: sqrt->f, Arg_2: 1 {O(1)} 3.83/2.33 3.83/2.33 0: sqrt->f, Arg_3: Arg_3 {O(n)} 3.83/2.33 3.83/2.33 `Upper: 3.83/2.33 3.83/2.33 1: f->f, Arg_0: max([0, 5*Arg_3]) {O(n)} 3.83/2.33 3.83/2.33 1: f->f, Arg_1: max([1, 1+10*Arg_3]) {O(n)} 3.83/2.33 3.83/2.33 1: f->f, Arg_2: max([1, 2^(5*Arg_3)])*max([1, 1+5*Arg_3]) {O(EXP)} 3.83/2.33 3.83/2.33 1: f->f, Arg_3: Arg_3 {O(n)} 3.83/2.33 3.83/2.33 2: f->end, Arg_0: max([0, 5*Arg_3]) {O(n)} 3.83/2.33 3.83/2.33 2: f->end, Arg_1: max([1, max([1, 1+10*Arg_3])]) {O(n)} 3.83/2.33 3.83/2.33 2: f->end, Arg_2: max([1, max([1, 2^(5*Arg_3)])*max([1, 1+5*Arg_3])]) {O(EXP)} 3.83/2.33 3.83/2.33 2: f->end, Arg_3: Arg_3 {O(n)} 3.83/2.33 3.83/2.33 0: sqrt->f, Arg_0: 0 {O(1)} 3.83/2.33 3.83/2.33 0: sqrt->f, Arg_1: 1 {O(1)} 3.83/2.33 3.83/2.33 0: sqrt->f, Arg_2: 1 {O(1)} 3.83/2.33 3.83/2.33 0: sqrt->f, Arg_3: Arg_3 {O(n)} 3.83/2.33 3.83/2.33 3.83/2.33 ---------------------------------------- 3.83/2.33 3.83/2.33 (2) 3.83/2.33 BOUNDS(1, max(2, 2 + 5 * Arg_3)) 3.83/2.35 EOF