/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.koat /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE 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(1, INF). (0) CpxIntTrs (1) Loat Proof [FINISHED, 623 ms] (2) BOUNDS(1, INF) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: eval_speedFails3_start(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_bb0_in(v__0, v_0, v_n, v_t, v_x)) :|: TRUE eval_speedFails3_bb0_in(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_0(v__0, v_0, v_n, v_t, v_x)) :|: TRUE eval_speedFails3_0(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_1(v__0, v_0, v_n, v_t, v_x)) :|: TRUE eval_speedFails3_1(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_2(v__0, v_0, v_n, v_t, v_x)) :|: TRUE eval_speedFails3_2(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_3(v__0, v_0, v_n, v_t, v_x)) :|: TRUE eval_speedFails3_3(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_4(v__0, nondef_0, v_n, v_t, v_x)) :|: TRUE eval_speedFails3_4(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_5(v__0, v_0, v_n, v_t, v_x)) :|: TRUE eval_speedFails3_5(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_6(v__0, v_0, v_n, v_t, v_x)) :|: TRUE eval_speedFails3_6(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_7(v__0, v_0, v_n, v_t, v_x)) :|: TRUE eval_speedFails3_7(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_bb1_in(v_x, v_0, v_n, v_t, v_x)) :|: TRUE eval_speedFails3_bb1_in(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_bb2_in(v__0, v_0, v_n, v_t, v_x)) :|: v__0 >= 0 && v__0 <= v_n eval_speedFails3_bb1_in(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_bb3_in(v__0, v_0, v_n, v_t, v_x)) :|: v__0 < 0 eval_speedFails3_bb1_in(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_bb3_in(v__0, v_0, v_n, v_t, v_x)) :|: v__0 > v_n eval_speedFails3_bb2_in(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_bb1_in(v__0 + v_t, v_0, v_n, v_t, v_x)) :|: v_0 > 0 eval_speedFails3_bb2_in(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_bb1_in(v__0 - v_t, v_0, v_n, v_t, v_x)) :|: v_0 <= 0 eval_speedFails3_bb3_in(v__0, v_0, v_n, v_t, v_x) -> Com_1(eval_speedFails3_stop(v__0, v_0, v_n, v_t, v_x)) :|: TRUE The start-symbols are:[eval_speedFails3_start_5] ---------------------------------------- (1) Loat Proof (FINISHED) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: evalspeedFails3start 0: evalspeedFails3start -> evalspeedFails3bb0in : [], cost: 1 1: evalspeedFails3bb0in -> evalspeedFails30 : [], cost: 1 2: evalspeedFails30 -> evalspeedFails31 : [], cost: 1 3: evalspeedFails31 -> evalspeedFails32 : [], cost: 1 4: evalspeedFails32 -> evalspeedFails33 : [], cost: 1 5: evalspeedFails33 -> evalspeedFails34 : A'=free, [], cost: 1 6: evalspeedFails34 -> evalspeedFails35 : [], cost: 1 7: evalspeedFails35 -> evalspeedFails36 : [], cost: 1 8: evalspeedFails36 -> evalspeedFails37 : [], cost: 1 9: evalspeedFails37 -> evalspeedFails3bb1in : B'=C, [], cost: 1 10: evalspeedFails3bb1in -> evalspeedFails3bb2in : [ B>=0 && D>=B ], cost: 1 11: evalspeedFails3bb1in -> evalspeedFails3bb3in : [ 0>=1+B ], cost: 1 12: evalspeedFails3bb1in -> evalspeedFails3bb3in : [ B>=1+D ], cost: 1 13: evalspeedFails3bb2in -> evalspeedFails3bb1in : B'=E+B, [ A>=1 ], cost: 1 14: evalspeedFails3bb2in -> evalspeedFails3bb1in : B'=-E+B, [ 0>=A ], cost: 1 15: evalspeedFails3bb3in -> evalspeedFails3stop : [], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 0: evalspeedFails3start -> evalspeedFails3bb0in : [], cost: 1 Removed unreachable and leaf rules: Start location: evalspeedFails3start 0: evalspeedFails3start -> evalspeedFails3bb0in : [], cost: 1 1: evalspeedFails3bb0in -> evalspeedFails30 : [], cost: 1 2: evalspeedFails30 -> evalspeedFails31 : [], cost: 1 3: evalspeedFails31 -> evalspeedFails32 : [], cost: 1 4: evalspeedFails32 -> evalspeedFails33 : [], cost: 1 5: evalspeedFails33 -> evalspeedFails34 : A'=free, [], cost: 1 6: evalspeedFails34 -> evalspeedFails35 : [], cost: 1 7: evalspeedFails35 -> evalspeedFails36 : [], cost: 1 8: evalspeedFails36 -> evalspeedFails37 : [], cost: 1 9: evalspeedFails37 -> evalspeedFails3bb1in : B'=C, [], cost: 1 10: evalspeedFails3bb1in -> evalspeedFails3bb2in : [ B>=0 && D>=B ], cost: 1 13: evalspeedFails3bb2in -> evalspeedFails3bb1in : B'=E+B, [ A>=1 ], cost: 1 14: evalspeedFails3bb2in -> evalspeedFails3bb1in : B'=-E+B, [ 0>=A ], cost: 1 ### Simplification by acceleration and chaining ### Eliminated locations (on linear paths): Start location: evalspeedFails3start 24: evalspeedFails3start -> evalspeedFails3bb1in : A'=free, B'=C, [], cost: 10 10: evalspeedFails3bb1in -> evalspeedFails3bb2in : [ B>=0 && D>=B ], cost: 1 13: evalspeedFails3bb2in -> evalspeedFails3bb1in : B'=E+B, [ A>=1 ], cost: 1 14: evalspeedFails3bb2in -> evalspeedFails3bb1in : B'=-E+B, [ 0>=A ], cost: 1 Eliminated locations (on tree-shaped paths): Start location: evalspeedFails3start 24: evalspeedFails3start -> evalspeedFails3bb1in : A'=free, B'=C, [], cost: 10 25: evalspeedFails3bb1in -> evalspeedFails3bb1in : B'=E+B, [ B>=0 && D>=B && A>=1 ], cost: 2 26: evalspeedFails3bb1in -> evalspeedFails3bb1in : B'=-E+B, [ B>=0 && D>=B && 0>=A ], cost: 2 Accelerating simple loops of location 10. Accelerating the following rules: 25: evalspeedFails3bb1in -> evalspeedFails3bb1in : B'=E+B, [ B>=0 && D>=B && A>=1 ], cost: 2 26: evalspeedFails3bb1in -> evalspeedFails3bb1in : B'=-E+B, [ B>=0 && D>=B && 0>=A ], cost: 2 Found no metering function for rule 25. Found no metering function for rule 26. Removing the simple loops:. Accelerated all simple loops using metering functions (where possible): Start location: evalspeedFails3start 24: evalspeedFails3start -> evalspeedFails3bb1in : A'=free, B'=C, [], cost: 10 25: evalspeedFails3bb1in -> evalspeedFails3bb1in : B'=E+B, [ B>=0 && D>=B && A>=1 ], cost: 2 26: evalspeedFails3bb1in -> evalspeedFails3bb1in : B'=-E+B, [ B>=0 && D>=B && 0>=A ], cost: 2 Chained accelerated rules (with incoming rules): Start location: evalspeedFails3start 24: evalspeedFails3start -> evalspeedFails3bb1in : A'=free, B'=C, [], cost: 10 27: evalspeedFails3start -> evalspeedFails3bb1in : A'=free, B'=C+E, [ C>=0 && D>=C && free>=1 ], cost: 12 28: evalspeedFails3start -> evalspeedFails3bb1in : A'=free, B'=C-E, [ C>=0 && D>=C && 0>=free ], cost: 12 Removed unreachable locations (and leaf rules with constant cost): Start location: evalspeedFails3start ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: evalspeedFails3start Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Constant Cpx degree: 0 Solved cost: 1 Rule cost: 1 Rule guard: [] WORST_CASE(Omega(1),?) ---------------------------------------- (2) BOUNDS(1, INF)