/export/starexec/sandbox/solver/bin/starexec_run_complexity /export/starexec/sandbox/benchmark/theBenchmark.koat /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), O(n^1)) proof of /export/starexec/sandbox/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, max(1, 1 + Arg_0 + -1 * Arg_1) + nat(Arg_0 + -1 * Arg_0 * Arg_1 + -1 * Arg_2 * Arg_0 + Arg_0^2 + Arg_2 * Arg_1 + -1 * Arg_2) + nat(Arg_0 + -1 * Arg_2) + nat(Arg_0 + -1 * Arg_1) + nat(1 + Arg_0 + -1 * Arg_1)). (0) CpxIntTrs (1) Loat Proof [FINISHED, 609 ms] (2) BOUNDS(n^1, INF) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: eval1(A, B, C) -> Com_1(eval2(A, B, C)) :|: A >= B + 1 eval2(A, B, C) -> Com_1(eval1(A, B + 1, C)) :|: A >= C + 1 eval2(A, B, C) -> Com_1(eval1(A, B, C + 1)) :|: A >= C + 1 eval2(A, B, C) -> Com_1(eval1(A - 1, B, C)) :|: C >= A start(A, B, C) -> Com_1(eval1(A, B, C)) :|: TRUE The start-symbols are:[start_3] ---------------------------------------- (1) Loat Proof (FINISHED) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: start 0: eval1 -> eval2 : [ A>=1+B ], cost: 1 1: eval2 -> eval1 : B'=1+B, [ A>=1+C ], cost: 1 2: eval2 -> eval1 : C'=1+C, [ A>=1+C ], cost: 1 3: eval2 -> eval1 : A'=-1+A, [ C>=A ], cost: 1 4: start -> eval1 : [], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on tree-shaped paths): Start location: start 5: eval1 -> eval1 : B'=1+B, [ A>=1+B && A>=1+C ], cost: 2 6: eval1 -> eval1 : C'=1+C, [ A>=1+B && A>=1+C ], cost: 2 7: eval1 -> eval1 : A'=-1+A, [ A>=1+B && C>=A ], cost: 2 4: start -> eval1 : [], cost: 1 Accelerating simple loops of location 0. Accelerating the following rules: 5: eval1 -> eval1 : B'=1+B, [ A>=1+B && A>=1+C ], cost: 2 6: eval1 -> eval1 : C'=1+C, [ A>=1+B && A>=1+C ], cost: 2 7: eval1 -> eval1 : A'=-1+A, [ A>=1+B && C>=A ], cost: 2 Accelerated rule 5 with metering function A-B, yielding the new rule 8. Accelerated rule 6 with metering function -C+A, yielding the new rule 9. Accelerated rule 7 with metering function A-B, yielding the new rule 10. Removing the simple loops: 5 6 7. Accelerated all simple loops using metering functions (where possible): Start location: start 8: eval1 -> eval1 : B'=A, [ A>=1+B && A>=1+C ], cost: 2*A-2*B 9: eval1 -> eval1 : C'=A, [ A>=1+B && A>=1+C ], cost: -2*C+2*A 10: eval1 -> eval1 : A'=B, [ A>=1+B && C>=A ], cost: 2*A-2*B 4: start -> eval1 : [], cost: 1 Chained accelerated rules (with incoming rules): Start location: start 4: start -> eval1 : [], cost: 1 11: start -> eval1 : B'=A, [ A>=1+B && A>=1+C ], cost: 1+2*A-2*B 12: start -> eval1 : C'=A, [ A>=1+B && A>=1+C ], cost: 1-2*C+2*A 13: start -> eval1 : A'=B, [ A>=1+B && C>=A ], cost: 1+2*A-2*B Removed unreachable locations (and leaf rules with constant cost): Start location: start 11: start -> eval1 : B'=A, [ A>=1+B && A>=1+C ], cost: 1+2*A-2*B 12: start -> eval1 : C'=A, [ A>=1+B && A>=1+C ], cost: 1-2*C+2*A 13: start -> eval1 : A'=B, [ A>=1+B && C>=A ], cost: 1+2*A-2*B ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: start 11: start -> eval1 : B'=A, [ A>=1+B && A>=1+C ], cost: 1+2*A-2*B 12: start -> eval1 : C'=A, [ A>=1+B && A>=1+C ], cost: 1-2*C+2*A 13: start -> eval1 : A'=B, [ A>=1+B && C>=A ], cost: 1+2*A-2*B Computing asymptotic complexity for rule 11 Solved the limit problem by the following transformations: Created initial limit problem: -C+A (+/+!), A-B (+/+!), 1+2*A-2*B (+) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {C==0,A==1,B==-n} resulting limit problem: [solved] Solution: C / 0 A / 1 B / -n Resulting cost 3+2*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: 3+2*n Rule cost: 1+2*A-2*B Rule guard: [ A>=1+B && A>=1+C ] WORST_CASE(Omega(n^1),?) ---------------------------------------- (2) BOUNDS(n^1, INF)