/export/starexec/sandbox/solver/bin/starexec_run_complexity /export/starexec/sandbox/benchmark/theBenchmark.koat /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(NON_POLY, ?) proof of /export/starexec/sandbox/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, 792 ms] (2) BOUNDS(INF, INF) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: f2(A, B) -> Com_1(f1(C, D)) :|: 0 >= C + 1 && A >= 14 && A <= 14 f2(A, B) -> Com_1(f2(C, B)) :|: C >= 0 && A >= 14 && A <= 14 f2(A, B) -> Com_1(f1(-(1) + A, C)) :|: A >= 15 && 0 >= A f2(A, B) -> Com_1(f1(-(1) + A, C)) :|: 13 >= A && 0 >= A f2(A, B) -> Com_1(f2(-(1) + A, B)) :|: A >= 15 && A >= 1 f2(A, B) -> Com_1(f2(-(1) + A, B)) :|: 13 >= A && A >= 1 f300(A, B) -> Com_1(f2(A, B)) :|: TRUE The start-symbols are:[f300_2] ---------------------------------------- (1) Loat Proof (FINISHED) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: f300 0: f2 -> f1 : A'=free, B'=free_1, [ 0>=1+free && A==14 ], cost: 1 1: f2 -> f2 : A'=free_2, [ free_2>=0 && A==14 ], cost: 1 2: f2 -> f1 : A'=-1+A, B'=free_3, [ A>=15 && 0>=A ], cost: 1 3: f2 -> f1 : A'=-1+A, B'=free_4, [ 13>=A && 0>=A ], cost: 1 4: f2 -> f2 : A'=-1+A, [ A>=15 && A>=1 ], cost: 1 5: f2 -> f2 : A'=-1+A, [ 13>=A && A>=1 ], cost: 1 6: f300 -> f2 : [], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 6: f300 -> f2 : [], cost: 1 Removed unreachable and leaf rules: Start location: f300 1: f2 -> f2 : A'=free_2, [ free_2>=0 && A==14 ], cost: 1 4: f2 -> f2 : A'=-1+A, [ A>=15 && A>=1 ], cost: 1 5: f2 -> f2 : A'=-1+A, [ 13>=A && A>=1 ], cost: 1 6: f300 -> f2 : [], cost: 1 Simplified all rules, resulting in: Start location: f300 1: f2 -> f2 : A'=free_2, [ free_2>=0 && A==14 ], cost: 1 4: f2 -> f2 : A'=-1+A, [ A>=15 ], cost: 1 5: f2 -> f2 : A'=-1+A, [ 13>=A && A>=1 ], cost: 1 6: f300 -> f2 : [], cost: 1 ### Simplification by acceleration and chaining ### Accelerating simple loops of location 0. Accelerating the following rules: 1: f2 -> f2 : A'=free_2, [ free_2>=0 && A==14 ], cost: 1 4: f2 -> f2 : A'=-1+A, [ A>=15 ], cost: 1 5: f2 -> f2 : A'=-1+A, [ 13>=A && A>=1 ], cost: 1 During metering: Instantiating temporary variables by {free_2==0} Accelerated rule 1 with metering function meter (where 14*meter==-13+A), yielding the new rule 7. Accelerated rule 4 with metering function -14+A, yielding the new rule 8. Accelerated rule 5 with metering function A, yielding the new rule 9. Nested simple loops 1 (outer loop) and 8 (inner loop) with NONTERM, resulting in the new rules: 10, 11. Nested simple loops 1 (outer loop) and 9 (inner loop) with metering function meter_1 (where 14*meter_1==-13+A), resulting in the new rules: 12. Removing the simple loops: 1 4 5. Accelerated all simple loops using metering functions (where possible): Start location: f300 7: f2 -> f2 : A'=0, [ A==14 && 14*meter==-13+A && meter>=1 ], cost: meter 8: f2 -> f2 : A'=14, [ A>=15 ], cost: -14+A 9: f2 -> f2 : A'=0, [ 13>=A && A>=1 ], cost: A 10: f2 -> [3] : [ A==14 && free_2>=15 ], cost: NONTERM 11: f2 -> [3] : A'=14, [ A>=15 && free_2>=15 ], cost: NONTERM 12: f2 -> f2 : A'=0, [ A==14 && 13>=free_2 && free_2>=1 && 14*meter_1==-13+A && meter_1>=1 ], cost: free_2*meter_1+meter_1 6: f300 -> f2 : [], cost: 1 Chained accelerated rules (with incoming rules): Start location: f300 6: f300 -> f2 : [], cost: 1 13: f300 -> f2 : A'=14, [ A>=15 ], cost: -13+A 14: f300 -> f2 : A'=0, [ 13>=A && A>=1 ], cost: 1+A 15: f300 -> [3] : [ A==14 ], cost: NONTERM 16: f300 -> [3] : A'=14, [ A>=15 ], cost: NONTERM Removed unreachable locations (and leaf rules with constant cost): Start location: f300 13: f300 -> f2 : A'=14, [ A>=15 ], cost: -13+A 14: f300 -> f2 : A'=0, [ 13>=A && A>=1 ], cost: 1+A 15: f300 -> [3] : [ A==14 ], cost: NONTERM 16: f300 -> [3] : A'=14, [ A>=15 ], cost: NONTERM ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: f300 13: f300 -> f2 : A'=14, [ A>=15 ], cost: -13+A 14: f300 -> f2 : A'=0, [ 13>=A && A>=1 ], cost: 1+A 15: f300 -> [3] : [ A==14 ], cost: NONTERM 16: f300 -> [3] : A'=14, [ A>=15 ], cost: NONTERM Computing asymptotic complexity for rule 13 Solved the limit problem by the following transformations: Created initial limit problem: -14+A (+/+!), -13+A (+) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {A==n} resulting limit problem: [solved] Solution: A / n Resulting cost -13+n has complexity: Poly(n^1) Found new complexity Poly(n^1). Computing asymptotic complexity for rule 15 Guard is satisfiable, yielding nontermination Resulting cost NONTERM has complexity: Nonterm Found new complexity Nonterm. Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: [ A==14 ] NO ---------------------------------------- (2) BOUNDS(INF, INF)