4.24/2.13 WORST_CASE(?, O(n^1)) 4.24/2.14 proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat 4.24/2.14 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.24/2.14 4.24/2.14 4.24/2.14 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(1, max(3, 3 + Arg_0 + -1 * Arg_1)). 4.24/2.14 4.24/2.14 (0) CpxIntTrs 4.24/2.14 (1) Koat2 Proof [FINISHED, 416 ms] 4.24/2.14 (2) BOUNDS(1, max(3, 3 + Arg_0 + -1 * Arg_1)) 4.24/2.14 4.24/2.14 4.24/2.14 ---------------------------------------- 4.24/2.14 4.24/2.14 (0) 4.24/2.14 Obligation: 4.24/2.14 Complexity Int TRS consisting of the following rules: 4.24/2.14 f4(A, B, C, D, E, F, G) -> Com_1(f4(A + B, B, C, D, E, F, G)) :|: A >= 0 4.24/2.14 f4(A, B, C, D, E, F, G) -> Com_1(f6(A, B, 0, 0, 0, 0, 0)) :|: 0 >= A + 1 4.24/2.14 f5(A, B, C, D, E, F, G) -> Com_1(f4(A, B, C, D, E, F, G)) :|: 0 >= B + 1 4.24/2.14 f5(A, B, C, D, E, F, G) -> Com_1(f6(A, B, 0, 0, 0, 0, 0)) :|: B >= 0 4.24/2.14 4.24/2.14 The start-symbols are:[f5_7] 4.24/2.14 4.24/2.14 4.24/2.14 ---------------------------------------- 4.24/2.14 4.24/2.14 (1) Koat2 Proof (FINISHED) 4.24/2.14 YES( ?, max([3, 3+Arg_0-Arg_1]) {O(n)}) 4.24/2.14 4.24/2.14 4.24/2.14 4.24/2.14 Initial Complexity Problem: 4.24/2.14 4.24/2.14 Start: f5 4.24/2.14 4.24/2.14 Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5, Arg_6 4.24/2.14 4.24/2.14 Temp_Vars: 4.24/2.14 4.24/2.14 Locations: f4, f5, f6 4.24/2.14 4.24/2.14 Transitions: 4.24/2.14 4.24/2.14 f4(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6) -> f4(Arg_0+Arg_1,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6):|:1+Arg_1 <= 0 && 0 <= Arg_0 4.24/2.14 4.24/2.14 f4(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6) -> f6(Arg_0,Arg_1,0,0,0,0,0):|:1+Arg_1 <= 0 && Arg_0+1 <= 0 4.24/2.14 4.24/2.14 f5(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6) -> f4(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6):|:Arg_1+1 <= 0 4.24/2.14 4.24/2.14 f5(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6) -> f6(Arg_0,Arg_1,0,0,0,0,0):|:0 <= Arg_1 4.24/2.14 4.24/2.14 4.24/2.14 4.24/2.14 Timebounds: 4.24/2.14 4.24/2.14 Overall timebound: max([3, 3+Arg_0-Arg_1]) {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4: max([0, Arg_0-Arg_1]) {O(n)} 4.24/2.14 4.24/2.14 1: f4->f6: 1 {O(1)} 4.24/2.14 4.24/2.14 2: f5->f4: 1 {O(1)} 4.24/2.14 4.24/2.14 3: f5->f6: 1 {O(1)} 4.24/2.14 4.24/2.14 4.24/2.14 4.24/2.14 Costbounds: 4.24/2.14 4.24/2.14 Overall costbound: max([3, 3+Arg_0-Arg_1]) {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4: max([0, Arg_0-Arg_1]) {O(n)} 4.24/2.14 4.24/2.14 1: f4->f6: 1 {O(1)} 4.24/2.14 4.24/2.14 2: f5->f4: 1 {O(1)} 4.24/2.14 4.24/2.14 3: f5->f6: 1 {O(1)} 4.24/2.14 4.24/2.14 4.24/2.14 4.24/2.14 Sizebounds: 4.24/2.14 4.24/2.14 `Lower: 4.24/2.14 4.24/2.14 0: f4->f4, Arg_0: Arg_1 {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_1: Arg_1 {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_2: Arg_2 {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_3: Arg_3 {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_4: Arg_4 {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_5: Arg_5 {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_6: Arg_6 {O(n)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_0: min([Arg_0, Arg_1]) {O(n)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_1: Arg_1 {O(n)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_2: 0 {O(1)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_3: 0 {O(1)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_4: 0 {O(1)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_5: 0 {O(1)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_6: 0 {O(1)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_0: Arg_0 {O(n)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_1: Arg_1 {O(n)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_2: Arg_2 {O(n)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_3: Arg_3 {O(n)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_4: Arg_4 {O(n)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_5: Arg_5 {O(n)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_6: Arg_6 {O(n)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_0: Arg_0 {O(n)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_1: 0 {O(1)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_2: 0 {O(1)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_3: 0 {O(1)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_4: 0 {O(1)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_5: 0 {O(1)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_6: 0 {O(1)} 4.24/2.14 4.24/2.14 `Upper: 4.24/2.14 4.24/2.14 0: f4->f4, Arg_0: Arg_0 {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_1: -1 {O(1)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_2: Arg_2 {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_3: Arg_3 {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_4: Arg_4 {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_5: Arg_5 {O(n)} 4.24/2.14 4.24/2.14 0: f4->f4, Arg_6: Arg_6 {O(n)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_0: -1 {O(1)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_1: -1 {O(1)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_2: 0 {O(1)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_3: 0 {O(1)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_4: 0 {O(1)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_5: 0 {O(1)} 4.24/2.14 4.24/2.14 1: f4->f6, Arg_6: 0 {O(1)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_0: Arg_0 {O(n)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_1: -1 {O(1)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_2: Arg_2 {O(n)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_3: Arg_3 {O(n)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_4: Arg_4 {O(n)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_5: Arg_5 {O(n)} 4.24/2.14 4.24/2.14 2: f5->f4, Arg_6: Arg_6 {O(n)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_0: Arg_0 {O(n)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_1: Arg_1 {O(n)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_2: 0 {O(1)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_3: 0 {O(1)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_4: 0 {O(1)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_5: 0 {O(1)} 4.24/2.14 4.24/2.14 3: f5->f6, Arg_6: 0 {O(1)} 4.24/2.14 4.24/2.14 4.24/2.14 ---------------------------------------- 4.24/2.14 4.24/2.14 (2) 4.24/2.14 BOUNDS(1, max(3, 3 + Arg_0 + -1 * Arg_1)) 4.29/2.42 EOF