3.68/1.82 WORST_CASE(Omega(n^1), O(n^1)) 3.68/1.83 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 3.68/1.83 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.68/1.83 3.68/1.83 3.68/1.83 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^1, max(3, 2 + Arg_0)). 3.68/1.83 3.68/1.83 (0) CpxIntTrs 3.68/1.83 (1) Koat2 Proof [FINISHED, 146 ms] 3.68/1.83 (2) BOUNDS(1, max(3, 2 + Arg_0)) 3.68/1.83 (3) Loat Proof [FINISHED, 117 ms] 3.68/1.83 (4) BOUNDS(n^1, INF) 3.68/1.83 3.68/1.83 3.68/1.83 ---------------------------------------- 3.68/1.83 3.68/1.83 (0) 3.68/1.83 Obligation: 3.68/1.83 Complexity Int TRS consisting of the following rules: 3.68/1.83 f5(A, B) -> Com_1(f5(-(1) + A, B)) :|: A >= 1 3.68/1.83 f5(A, B) -> Com_1(f1(A, C)) :|: 0 >= A 3.68/1.83 f300(A, B) -> Com_1(f5(-(1) + A, B)) :|: A >= 1 3.68/1.83 f300(A, B) -> Com_1(f1(A, C)) :|: 0 >= A 3.68/1.83 3.68/1.83 The start-symbols are:[f300_2] 3.68/1.83 3.68/1.83 3.68/1.83 ---------------------------------------- 3.68/1.83 3.68/1.83 (1) Koat2 Proof (FINISHED) 3.68/1.83 YES( ?, max([3, 2+Arg_0]) {O(n)}) 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Initial Complexity Problem: 3.68/1.83 3.68/1.83 Start: f300 3.68/1.83 3.68/1.83 Program_Vars: Arg_0, Arg_1 3.68/1.83 3.68/1.83 Temp_Vars: C 3.68/1.83 3.68/1.83 Locations: f1, f300, f5 3.68/1.83 3.68/1.83 Transitions: 3.68/1.83 3.68/1.83 f300(Arg_0,Arg_1) -> f1(Arg_0,C):|:Arg_0 <= 0 3.68/1.83 3.68/1.83 f300(Arg_0,Arg_1) -> f5(-1+Arg_0,Arg_1):|:1 <= Arg_0 3.68/1.83 3.68/1.83 f5(Arg_0,Arg_1) -> f1(Arg_0,C):|:0 <= Arg_0 && Arg_0 <= 0 3.68/1.83 3.68/1.83 f5(Arg_0,Arg_1) -> f5(-1+Arg_0,Arg_1):|:0 <= Arg_0 && 1 <= Arg_0 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Timebounds: 3.68/1.83 3.68/1.83 Overall timebound: max([3, 2+Arg_0]) {O(n)} 3.68/1.83 3.68/1.83 2: f300->f5: 1 {O(1)} 3.68/1.83 3.68/1.83 3: f300->f1: 1 {O(1)} 3.68/1.83 3.68/1.83 0: f5->f5: max([0, -1+Arg_0]) {O(n)} 3.68/1.83 3.68/1.83 1: f5->f1: 1 {O(1)} 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Costbounds: 3.68/1.83 3.68/1.83 Overall costbound: max([3, 2+Arg_0]) {O(n)} 3.68/1.83 3.68/1.83 2: f300->f5: 1 {O(1)} 3.68/1.83 3.68/1.83 3: f300->f1: 1 {O(1)} 3.68/1.83 3.68/1.83 0: f5->f5: max([0, -1+Arg_0]) {O(n)} 3.68/1.83 3.68/1.83 1: f5->f1: 1 {O(1)} 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Sizebounds: 3.68/1.83 3.68/1.83 `Lower: 3.68/1.83 3.68/1.83 2: f300->f5, Arg_0: 0 {O(1)} 3.68/1.83 3.68/1.83 2: f300->f5, Arg_1: Arg_1 {O(n)} 3.68/1.83 3.68/1.83 3: f300->f1, Arg_0: Arg_0 {O(n)} 3.68/1.83 3.68/1.83 0: f5->f5, Arg_0: 0 {O(1)} 3.68/1.83 3.68/1.83 0: f5->f5, Arg_1: Arg_1 {O(n)} 3.68/1.83 3.68/1.83 1: f5->f1, Arg_0: 0 {O(1)} 3.68/1.83 3.68/1.83 `Upper: 3.68/1.83 3.68/1.83 2: f300->f5, Arg_0: -1+Arg_0 {O(n)} 3.68/1.83 3.68/1.83 2: f300->f5, Arg_1: Arg_1 {O(n)} 3.68/1.83 3.68/1.83 3: f300->f1, Arg_0: 0 {O(1)} 3.68/1.83 3.68/1.83 0: f5->f5, Arg_0: -1+Arg_0 {O(n)} 3.68/1.83 3.68/1.83 0: f5->f5, Arg_1: Arg_1 {O(n)} 3.68/1.83 3.68/1.83 1: f5->f1, Arg_0: 0 {O(1)} 3.68/1.83 3.68/1.83 3.68/1.83 ---------------------------------------- 3.68/1.83 3.68/1.83 (2) 3.68/1.83 BOUNDS(1, max(3, 2 + Arg_0)) 3.68/1.83 3.68/1.83 ---------------------------------------- 3.68/1.83 3.68/1.83 (3) Loat Proof (FINISHED) 3.68/1.83 3.68/1.83 3.68/1.83 ### Pre-processing the ITS problem ### 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Initial linear ITS problem 3.68/1.83 3.68/1.83 Start location: f300 3.68/1.83 3.68/1.83 0: f5 -> f5 : A'=-1+A, [ A>=1 ], cost: 1 3.68/1.83 3.68/1.83 1: f5 -> f1 : B'=free, [ 0>=A ], cost: 1 3.68/1.83 3.68/1.83 2: f300 -> f5 : A'=-1+A, [ A>=1 ], cost: 1 3.68/1.83 3.68/1.83 3: f300 -> f1 : B'=free_1, [ 0>=A ], cost: 1 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Removed unreachable and leaf rules: 3.68/1.83 3.68/1.83 Start location: f300 3.68/1.83 3.68/1.83 0: f5 -> f5 : A'=-1+A, [ A>=1 ], cost: 1 3.68/1.83 3.68/1.83 2: f300 -> f5 : A'=-1+A, [ A>=1 ], cost: 1 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 ### Simplification by acceleration and chaining ### 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Accelerating simple loops of location 0. 3.68/1.83 3.68/1.83 Accelerating the following rules: 3.68/1.83 3.68/1.83 0: f5 -> f5 : A'=-1+A, [ A>=1 ], cost: 1 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Accelerated rule 0 with metering function A, yielding the new rule 4. 3.68/1.83 3.68/1.83 Removing the simple loops: 0. 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Accelerated all simple loops using metering functions (where possible): 3.68/1.83 3.68/1.83 Start location: f300 3.68/1.83 3.68/1.83 4: f5 -> f5 : A'=0, [ A>=1 ], cost: A 3.68/1.83 3.68/1.83 2: f300 -> f5 : A'=-1+A, [ A>=1 ], cost: 1 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Chained accelerated rules (with incoming rules): 3.68/1.83 3.68/1.83 Start location: f300 3.68/1.83 3.68/1.83 2: f300 -> f5 : A'=-1+A, [ A>=1 ], cost: 1 3.68/1.83 3.68/1.83 5: f300 -> f5 : A'=0, [ -1+A>=1 ], cost: A 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Removed unreachable locations (and leaf rules with constant cost): 3.68/1.83 3.68/1.83 Start location: f300 3.68/1.83 3.68/1.83 5: f300 -> f5 : A'=0, [ -1+A>=1 ], cost: A 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 ### Computing asymptotic complexity ### 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Fully simplified ITS problem 3.68/1.83 3.68/1.83 Start location: f300 3.68/1.83 3.68/1.83 5: f300 -> f5 : A'=0, [ -1+A>=1 ], cost: A 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Computing asymptotic complexity for rule 5 3.68/1.83 3.68/1.83 Solved the limit problem by the following transformations: 3.68/1.83 3.68/1.83 Created initial limit problem: 3.68/1.83 3.68/1.83 -1+A (+/+!), A (+) [not solved] 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 removing all constraints (solved by SMT) 3.68/1.83 3.68/1.83 resulting limit problem: [solved] 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 applying transformation rule (C) using substitution {A==n} 3.68/1.83 3.68/1.83 resulting limit problem: 3.68/1.83 3.68/1.83 [solved] 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Solution: 3.68/1.83 3.68/1.83 A / n 3.68/1.83 3.68/1.83 Resulting cost n has complexity: Poly(n^1) 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Found new complexity Poly(n^1). 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 Obtained the following overall complexity (w.r.t. the length of the input n): 3.68/1.83 3.68/1.83 Complexity: Poly(n^1) 3.68/1.83 3.68/1.83 Cpx degree: 1 3.68/1.83 3.68/1.83 Solved cost: n 3.68/1.83 3.68/1.83 Rule cost: A 3.68/1.83 3.68/1.83 Rule guard: [ -1+A>=1 ] 3.68/1.83 3.68/1.83 3.68/1.83 3.68/1.83 WORST_CASE(Omega(n^1),?) 3.68/1.83 3.68/1.83 3.68/1.83 ---------------------------------------- 3.68/1.83 3.68/1.83 (4) 3.68/1.83 BOUNDS(n^1, INF) 3.80/1.85 EOF