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