4.24/2.08 WORST_CASE(NON_POLY, ?) 4.24/2.08 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 4.24/2.08 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.24/2.08 4.24/2.08 4.24/2.08 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(INF, INF). 4.24/2.08 4.24/2.08 (0) CpxIntTrs 4.24/2.08 (1) Loat Proof [FINISHED, 421 ms] 4.24/2.08 (2) BOUNDS(INF, INF) 4.24/2.08 4.24/2.08 4.24/2.08 ---------------------------------------- 4.24/2.08 4.24/2.08 (0) 4.24/2.08 Obligation: 4.24/2.08 Complexity Int TRS consisting of the following rules: 4.24/2.08 eval(A, B) -> Com_1(eval(A - 1, C)) :|: A >= 0 4.24/2.08 eval(A, B) -> Com_1(eval(A, B - 1)) :|: B >= 0 4.24/2.08 start(A, B) -> Com_1(eval(A, B)) :|: TRUE 4.24/2.08 4.24/2.08 The start-symbols are:[start_2] 4.24/2.08 4.24/2.08 4.24/2.08 ---------------------------------------- 4.24/2.08 4.24/2.08 (1) Loat Proof (FINISHED) 4.24/2.08 4.24/2.08 4.24/2.08 ### Pre-processing the ITS problem ### 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Initial linear ITS problem 4.24/2.08 4.24/2.08 Start location: start 4.24/2.08 4.24/2.08 0: eval -> eval : A'=-1+A, B'=free, [ A>=0 ], cost: 1 4.24/2.08 4.24/2.08 1: eval -> eval : B'=-1+B, [ B>=0 ], cost: 1 4.24/2.08 4.24/2.08 2: start -> eval : [], cost: 1 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 ### Simplification by acceleration and chaining ### 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Accelerating simple loops of location 0. 4.24/2.08 4.24/2.08 Accelerating the following rules: 4.24/2.08 4.24/2.08 0: eval -> eval : A'=-1+A, B'=free, [ A>=0 ], cost: 1 4.24/2.08 4.24/2.08 1: eval -> eval : B'=-1+B, [ B>=0 ], cost: 1 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Accelerated rule 0 with metering function 1+A, yielding the new rule 3. 4.24/2.08 4.24/2.08 Accelerated rule 1 with metering function 1+B, yielding the new rule 4. 4.24/2.08 4.24/2.08 Nested simple loops 0 (outer loop) and 4 (inner loop) with metering function 1+A, resulting in the new rules: 5, 6. 4.24/2.08 4.24/2.08 Removing the simple loops: 0 1. 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Accelerated all simple loops using metering functions (where possible): 4.24/2.08 4.24/2.08 Start location: start 4.24/2.08 4.24/2.08 3: eval -> eval : A'=-1, B'=free, [ A>=0 ], cost: 1+A 4.24/2.08 4.24/2.08 4: eval -> eval : B'=-1, [ B>=0 ], cost: 1+B 4.24/2.08 4.24/2.08 5: eval -> eval : A'=-1, B'=-1, [ A>=0 && free>=0 ], cost: 2+free*(1+A)+2*A 4.24/2.08 4.24/2.08 6: eval -> eval : A'=-1, B'=-1, [ B>=0 && A>=0 && free>=0 ], cost: 3+free*(1+A)+2*A+B 4.24/2.08 4.24/2.08 2: start -> eval : [], cost: 1 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Chained accelerated rules (with incoming rules): 4.24/2.08 4.24/2.08 Start location: start 4.24/2.08 4.24/2.08 2: start -> eval : [], cost: 1 4.24/2.08 4.24/2.08 7: start -> eval : A'=-1, B'=free, [ A>=0 ], cost: 2+A 4.24/2.08 4.24/2.08 8: start -> eval : B'=-1, [ B>=0 ], cost: 2+B 4.24/2.08 4.24/2.08 9: start -> eval : A'=-1, B'=-1, [ A>=0 && free>=0 ], cost: 3+free*(1+A)+2*A 4.24/2.08 4.24/2.08 10: start -> eval : A'=-1, B'=-1, [ B>=0 && A>=0 && free>=0 ], cost: 4+free*(1+A)+2*A+B 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Removed unreachable locations (and leaf rules with constant cost): 4.24/2.08 4.24/2.08 Start location: start 4.24/2.08 4.24/2.08 7: start -> eval : A'=-1, B'=free, [ A>=0 ], cost: 2+A 4.24/2.08 4.24/2.08 8: start -> eval : B'=-1, [ B>=0 ], cost: 2+B 4.24/2.08 4.24/2.08 9: start -> eval : A'=-1, B'=-1, [ A>=0 && free>=0 ], cost: 3+free*(1+A)+2*A 4.24/2.08 4.24/2.08 10: start -> eval : A'=-1, B'=-1, [ B>=0 && A>=0 && free>=0 ], cost: 4+free*(1+A)+2*A+B 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 ### Computing asymptotic complexity ### 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Fully simplified ITS problem 4.24/2.08 4.24/2.08 Start location: start 4.24/2.08 4.24/2.08 7: start -> eval : A'=-1, B'=free, [ A>=0 ], cost: 2+A 4.24/2.08 4.24/2.08 8: start -> eval : B'=-1, [ B>=0 ], cost: 2+B 4.24/2.08 4.24/2.08 9: start -> eval : A'=-1, B'=-1, [ A>=0 && free>=0 ], cost: 3+free*(1+A)+2*A 4.24/2.08 4.24/2.08 10: start -> eval : A'=-1, B'=-1, [ B>=0 && A>=0 && free>=0 ], cost: 4+free*(1+A)+2*A+B 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Computing asymptotic complexity for rule 7 4.24/2.08 4.24/2.08 Solved the limit problem by the following transformations: 4.24/2.08 4.24/2.08 Created initial limit problem: 4.24/2.08 4.24/2.08 2+A (+), 1+A (+/+!) [not solved] 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 removing all constraints (solved by SMT) 4.24/2.08 4.24/2.08 resulting limit problem: [solved] 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 applying transformation rule (C) using substitution {A==n} 4.24/2.08 4.24/2.08 resulting limit problem: 4.24/2.08 4.24/2.08 [solved] 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Solution: 4.24/2.08 4.24/2.08 A / n 4.24/2.08 4.24/2.08 Resulting cost 2+n has complexity: Poly(n^1) 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Found new complexity Poly(n^1). 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Computing asymptotic complexity for rule 9 4.24/2.08 4.24/2.08 Solved the limit problem by the following transformations: 4.24/2.08 4.24/2.08 Created initial limit problem: 4.24/2.08 4.24/2.08 3+free+2*A+free*A (+), 1+free (+/+!), 1+A (+/+!) [not solved] 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 removing all constraints (solved by SMT) 4.24/2.08 4.24/2.08 resulting limit problem: [solved] 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 applying transformation rule (C) using substitution {free==n,A==0} 4.24/2.08 4.24/2.08 resulting limit problem: 4.24/2.08 4.24/2.08 [solved] 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Solution: 4.24/2.08 4.24/2.08 free / n 4.24/2.08 4.24/2.08 A / 0 4.24/2.08 4.24/2.08 Resulting cost 3+n has complexity: Unbounded 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Found new complexity Unbounded. 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 Obtained the following overall complexity (w.r.t. the length of the input n): 4.24/2.08 4.24/2.08 Complexity: Unbounded 4.24/2.08 4.24/2.08 Cpx degree: Unbounded 4.24/2.08 4.24/2.08 Solved cost: 3+n 4.24/2.08 4.24/2.08 Rule cost: 3+free*(1+A)+2*A 4.24/2.08 4.24/2.08 Rule guard: [ A>=0 && free>=0 ] 4.24/2.08 4.24/2.08 4.24/2.08 4.24/2.08 WORST_CASE(INF,?) 4.24/2.08 4.24/2.08 4.24/2.08 ---------------------------------------- 4.24/2.08 4.24/2.08 (2) 4.24/2.08 BOUNDS(INF, INF) 4.41/2.12 EOF