/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.koat /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), ?) proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^1, INF). (0) CpxIntTrs (1) Loat Proof [FINISHED, 975 ms] (2) BOUNDS(n^1, INF) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: f2(A, B, C, D) -> Com_1(f300(A, B, C, D)) :|: TRUE f300(A, B, C, D) -> Com_1(f300(-(1) + B, -(1) + B, E, D)) :|: A >= 1 && B >= 1 && E >= 1 && B + A >= 1 f300(A, B, C, D) -> Com_1(f300(-(1) + B, -(1) + B, E, D)) :|: A >= 1 && B >= 1 && 0 >= E + 1 && B + A >= 1 f300(A, B, C, D) -> Com_1(f300(-(1) + A, -(2) + A, 0, D)) :|: A >= 1 && B + A >= 1 && B >= 1 f300(A, B, C, D) -> Com_1(f1(A, B, C, E)) :|: A >= 1 && 0 >= B + A && B >= 1 f300(A, B, C, D) -> Com_1(f1(A, B, C, E)) :|: B >= 1 && 0 >= A f300(A, B, C, D) -> Com_1(f1(A, B, C, E)) :|: 0 >= B The start-symbols are:[f2_4] ---------------------------------------- (1) Loat Proof (FINISHED) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: f2 0: f2 -> f300 : [], cost: 1 1: f300 -> f300 : A'=-1+B, B'=-1+B, C'=free, [ A>=1 && B>=1 && free>=1 && A+B>=1 ], cost: 1 2: f300 -> f300 : A'=-1+B, B'=-1+B, C'=free_1, [ A>=1 && B>=1 && 0>=1+free_1 && A+B>=1 ], cost: 1 3: f300 -> f300 : A'=-1+A, B'=-2+A, C'=0, [ A>=1 && A+B>=1 && B>=1 ], cost: 1 4: f300 -> f1 : D'=free_2, [ A>=1 && 0>=A+B && B>=1 ], cost: 1 5: f300 -> f1 : D'=free_3, [ B>=1 && 0>=A ], cost: 1 6: f300 -> f1 : D'=free_4, [ 0>=B ], cost: 1 Removed unreachable and leaf rules: Start location: f2 0: f2 -> f300 : [], cost: 1 1: f300 -> f300 : A'=-1+B, B'=-1+B, C'=free, [ A>=1 && B>=1 && free>=1 && A+B>=1 ], cost: 1 2: f300 -> f300 : A'=-1+B, B'=-1+B, C'=free_1, [ A>=1 && B>=1 && 0>=1+free_1 && A+B>=1 ], cost: 1 3: f300 -> f300 : A'=-1+A, B'=-2+A, C'=0, [ A>=1 && A+B>=1 && B>=1 ], cost: 1 ### Simplification by acceleration and chaining ### Accelerating simple loops of location 1. Accelerating the following rules: 1: f300 -> f300 : A'=-1+B, B'=-1+B, C'=free, [ A>=1 && B>=1 && free>=1 ], cost: 1 2: f300 -> f300 : A'=-1+B, B'=-1+B, C'=free_1, [ A>=1 && B>=1 && 0>=1+free_1 ], cost: 1 3: f300 -> f300 : A'=-1+A, B'=-2+A, C'=0, [ A>=1 && A+B>=1 && B>=1 ], cost: 1 Accelerated rule 1 with backward acceleration, yielding the new rule 7. Accelerated rule 1 with backward acceleration, yielding the new rule 8. Accelerated rule 2 with backward acceleration, yielding the new rule 9. Accelerated rule 2 with backward acceleration, yielding the new rule 10. Found no metering function for rule 3. Removing the simple loops: 1 2. Also removing duplicate rules:. Accelerated all simple loops using metering functions (where possible): Start location: f2 0: f2 -> f300 : [], cost: 1 3: f300 -> f300 : A'=-1+A, B'=-2+A, C'=0, [ A>=1 && A+B>=1 && B>=1 ], cost: 1 8: f300 -> f300 : A'=0, B'=0, C'=free, [ A>=1 && B>=1 && free>=1 ], cost: B 10: f300 -> f300 : A'=0, B'=0, C'=free_1, [ A>=1 && B>=1 && 0>=1+free_1 ], cost: B Chained accelerated rules (with incoming rules): Start location: f2 0: f2 -> f300 : [], cost: 1 11: f2 -> f300 : A'=-1+A, B'=-2+A, C'=0, [ A>=1 && A+B>=1 && B>=1 ], cost: 2 12: f2 -> f300 : A'=0, B'=0, C'=free, [ A>=1 && B>=1 && free>=1 ], cost: 1+B 13: f2 -> f300 : A'=0, B'=0, C'=free_1, [ A>=1 && B>=1 && 0>=1+free_1 ], cost: 1+B Removed unreachable locations (and leaf rules with constant cost): Start location: f2 12: f2 -> f300 : A'=0, B'=0, C'=free, [ A>=1 && B>=1 && free>=1 ], cost: 1+B 13: f2 -> f300 : A'=0, B'=0, C'=free_1, [ A>=1 && B>=1 && 0>=1+free_1 ], cost: 1+B ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: f2 12: f2 -> f300 : A'=0, B'=0, C'=free, [ A>=1 && B>=1 && free>=1 ], cost: 1+B 13: f2 -> f300 : A'=0, B'=0, C'=free_1, [ A>=1 && B>=1 && 0>=1+free_1 ], cost: 1+B Computing asymptotic complexity for rule 12 Solved the limit problem by the following transformations: Created initial limit problem: free (+/+!), 1+B (+), A (+/+!), B (+/+!) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {free==n,A==n,B==n} resulting limit problem: [solved] Solution: free / n A / n B / n Resulting cost 1+n has complexity: Poly(n^1) Found new complexity Poly(n^1). Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Poly(n^1) Cpx degree: 1 Solved cost: 1+n Rule cost: 1+B Rule guard: [ A>=1 && B>=1 && free>=1 ] WORST_CASE(Omega(n^1),?) ---------------------------------------- (2) BOUNDS(n^1, INF)