14.76/8.50 WORST_CASE(Omega(n^1), ?) 14.76/8.51 proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat 14.76/8.51 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 14.76/8.51 14.76/8.51 14.76/8.51 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^1, INF). 14.76/8.51 14.76/8.51 (0) CpxIntTrs 14.76/8.51 (1) Loat Proof [FINISHED, 978 ms] 14.76/8.51 (2) BOUNDS(n^1, INF) 14.76/8.51 14.76/8.51 14.76/8.51 ---------------------------------------- 14.76/8.51 14.76/8.51 (0) 14.76/8.51 Obligation: 14.76/8.51 Complexity Int TRS consisting of the following rules: 14.76/8.51 eval_aaron3_start(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_bb0_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_bb0_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_0(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_0(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_1(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_1(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_2(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_2(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_3(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_3(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_4(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_4(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_5(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_5(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_6(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_6(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_7(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_7(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_8(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_8(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_bb1_in(v_x, v_y, v_z, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_bb1_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_bb2_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: v__01 >= v__02 14.76/8.51 eval_aaron3_bb1_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_bb5_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: v__01 < v__02 14.76/8.51 eval_aaron3_bb2_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_9(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_9(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_10(v__01, v__02, v__04, nondef_0, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_10(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_bb3_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: v_1 > 0 14.76/8.51 eval_aaron3_10(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_bb4_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: v_1 <= 0 14.76/8.51 eval_aaron3_bb3_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_12(v__01, v__02, v__04, v_1, v__04 - 1, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_12(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_13(v__01, v__02, v__04, v_1, v_3, nondef_1, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_13(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_bb5_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: v_4 > v__01 + v_3 14.76/8.51 eval_aaron3_13(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_bb1_in(v_4, v__02, v_3, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: v_4 <= v__01 + v_3 14.76/8.51 eval_aaron3_bb4_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_bb1_in(v__01, v__02 + 1, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 eval_aaron3_bb5_in(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z) -> Com_1(eval_aaron3_stop(v__01, v__02, v__04, v_1, v_3, v_4, v_tx, v_x, v_y, v_z)) :|: TRUE 14.76/8.51 14.76/8.51 The start-symbols are:[eval_aaron3_start_10] 14.76/8.51 14.76/8.51 14.76/8.51 ---------------------------------------- 14.76/8.51 14.76/8.51 (1) Loat Proof (FINISHED) 14.76/8.51 14.76/8.51 14.76/8.51 ### Pre-processing the ITS problem ### 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Initial linear ITS problem 14.76/8.51 14.76/8.51 Start location: evalaaron3start 14.76/8.51 14.76/8.51 0: evalaaron3start -> evalaaron3bb0in : [], cost: 1 14.76/8.51 14.76/8.51 1: evalaaron3bb0in -> evalaaron30 : [], cost: 1 14.76/8.51 14.76/8.51 2: evalaaron30 -> evalaaron31 : [], cost: 1 14.76/8.51 14.76/8.51 3: evalaaron31 -> evalaaron32 : [], cost: 1 14.76/8.51 14.76/8.51 4: evalaaron32 -> evalaaron33 : [], cost: 1 14.76/8.51 14.76/8.51 5: evalaaron33 -> evalaaron34 : [], cost: 1 14.76/8.51 14.76/8.51 6: evalaaron34 -> evalaaron35 : [], cost: 1 14.76/8.51 14.76/8.51 7: evalaaron35 -> evalaaron36 : [], cost: 1 14.76/8.51 14.76/8.51 8: evalaaron36 -> evalaaron37 : [], cost: 1 14.76/8.51 14.76/8.51 9: evalaaron37 -> evalaaron38 : [], cost: 1 14.76/8.51 14.76/8.51 10: evalaaron38 -> evalaaron3bb1in : A'=B, C'=D, E'=F, [], cost: 1 14.76/8.51 14.76/8.51 11: evalaaron3bb1in -> evalaaron3bb2in : [ A>=C ], cost: 1 14.76/8.51 14.76/8.51 12: evalaaron3bb1in -> evalaaron3bb5in : [ C>=1+A ], cost: 1 14.76/8.51 14.76/8.51 13: evalaaron3bb2in -> evalaaron39 : [], cost: 1 14.76/8.51 14.76/8.51 14: evalaaron39 -> evalaaron310 : G'=free, [], cost: 1 14.76/8.51 14.76/8.51 15: evalaaron310 -> evalaaron3bb3in : [ G>=1 ], cost: 1 14.76/8.51 14.76/8.51 16: evalaaron310 -> evalaaron3bb4in : [ 0>=G ], cost: 1 14.76/8.51 14.76/8.51 17: evalaaron3bb3in -> evalaaron312 : H'=-1+E, [], cost: 1 14.76/8.51 14.76/8.51 18: evalaaron312 -> evalaaron313 : Q'=free_1, [], cost: 1 14.76/8.51 14.76/8.51 19: evalaaron313 -> evalaaron3bb5in : [ Q>=1+A+H ], cost: 1 14.76/8.51 14.76/8.51 20: evalaaron313 -> evalaaron3bb1in : A'=Q, E'=H, [ A+H>=Q ], cost: 1 14.76/8.51 14.76/8.51 21: evalaaron3bb4in -> evalaaron3bb1in : C'=1+C, [], cost: 1 14.76/8.51 14.76/8.51 22: evalaaron3bb5in -> evalaaron3stop : [], cost: 1 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Removed unreachable and leaf rules: 14.76/8.51 14.76/8.51 Start location: evalaaron3start 14.76/8.51 14.76/8.51 0: evalaaron3start -> evalaaron3bb0in : [], cost: 1 14.76/8.51 14.76/8.51 1: evalaaron3bb0in -> evalaaron30 : [], cost: 1 14.76/8.51 14.76/8.51 2: evalaaron30 -> evalaaron31 : [], cost: 1 14.76/8.51 14.76/8.51 3: evalaaron31 -> evalaaron32 : [], cost: 1 14.76/8.51 14.76/8.51 4: evalaaron32 -> evalaaron33 : [], cost: 1 14.76/8.51 14.76/8.51 5: evalaaron33 -> evalaaron34 : [], cost: 1 14.76/8.51 14.76/8.51 6: evalaaron34 -> evalaaron35 : [], cost: 1 14.76/8.51 14.76/8.51 7: evalaaron35 -> evalaaron36 : [], cost: 1 14.76/8.51 14.76/8.51 8: evalaaron36 -> evalaaron37 : [], cost: 1 14.76/8.51 14.76/8.51 9: evalaaron37 -> evalaaron38 : [], cost: 1 14.76/8.51 14.76/8.51 10: evalaaron38 -> evalaaron3bb1in : A'=B, C'=D, E'=F, [], cost: 1 14.76/8.51 14.76/8.51 11: evalaaron3bb1in -> evalaaron3bb2in : [ A>=C ], cost: 1 14.76/8.51 14.76/8.51 13: evalaaron3bb2in -> evalaaron39 : [], cost: 1 14.76/8.51 14.76/8.51 14: evalaaron39 -> evalaaron310 : G'=free, [], cost: 1 14.76/8.51 14.76/8.51 15: evalaaron310 -> evalaaron3bb3in : [ G>=1 ], cost: 1 14.76/8.51 14.76/8.51 16: evalaaron310 -> evalaaron3bb4in : [ 0>=G ], cost: 1 14.76/8.51 14.76/8.51 17: evalaaron3bb3in -> evalaaron312 : H'=-1+E, [], cost: 1 14.76/8.51 14.76/8.51 18: evalaaron312 -> evalaaron313 : Q'=free_1, [], cost: 1 14.76/8.51 14.76/8.51 20: evalaaron313 -> evalaaron3bb1in : A'=Q, E'=H, [ A+H>=Q ], cost: 1 14.76/8.51 14.76/8.51 21: evalaaron3bb4in -> evalaaron3bb1in : C'=1+C, [], cost: 1 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 ### Simplification by acceleration and chaining ### 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Eliminated locations (on linear paths): 14.76/8.51 14.76/8.51 Start location: evalaaron3start 14.76/8.51 14.76/8.51 32: evalaaron3start -> evalaaron3bb1in : A'=B, C'=D, E'=F, [], cost: 11 14.76/8.51 14.76/8.51 34: evalaaron3bb1in -> evalaaron310 : G'=free, [ A>=C ], cost: 3 14.76/8.51 14.76/8.51 36: evalaaron310 -> evalaaron3bb1in : C'=1+C, [ 0>=G ], cost: 2 14.76/8.51 14.76/8.51 38: evalaaron310 -> evalaaron3bb1in : A'=free_1, E'=-1+E, H'=-1+E, Q'=free_1, [ G>=1 && -1+A+E>=free_1 ], cost: 4 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Eliminated locations (on tree-shaped paths): 14.76/8.51 14.76/8.51 Start location: evalaaron3start 14.76/8.51 14.76/8.51 32: evalaaron3start -> evalaaron3bb1in : A'=B, C'=D, E'=F, [], cost: 11 14.76/8.51 14.76/8.51 39: evalaaron3bb1in -> evalaaron3bb1in : C'=1+C, G'=free, [ A>=C && 0>=free ], cost: 5 14.76/8.51 14.76/8.51 40: evalaaron3bb1in -> evalaaron3bb1in : A'=free_1, E'=-1+E, G'=free, H'=-1+E, Q'=free_1, [ A>=C && free>=1 && -1+A+E>=free_1 ], cost: 7 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Accelerating simple loops of location 11. 14.76/8.51 14.76/8.51 Accelerating the following rules: 14.76/8.51 14.76/8.51 39: evalaaron3bb1in -> evalaaron3bb1in : C'=1+C, G'=free, [ A>=C && 0>=free ], cost: 5 14.76/8.51 14.76/8.51 40: evalaaron3bb1in -> evalaaron3bb1in : A'=free_1, E'=-1+E, G'=free, H'=-1+E, Q'=free_1, [ A>=C && free>=1 && -1+A+E>=free_1 ], cost: 7 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Accelerated rule 39 with metering function 1-C+A, yielding the new rule 41. 14.76/8.51 14.76/8.51 Accelerated rule 40 with metering function -1+E (after strengthening guard), yielding the new rule 42. 14.76/8.51 14.76/8.51 Removing the simple loops: 39. 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Accelerated all simple loops using metering functions (where possible): 14.76/8.51 14.76/8.51 Start location: evalaaron3start 14.76/8.51 14.76/8.51 32: evalaaron3start -> evalaaron3bb1in : A'=B, C'=D, E'=F, [], cost: 11 14.76/8.51 14.76/8.51 40: evalaaron3bb1in -> evalaaron3bb1in : A'=free_1, E'=-1+E, G'=free, H'=-1+E, Q'=free_1, [ A>=C && free>=1 && -1+A+E>=free_1 ], cost: 7 14.76/8.51 14.76/8.51 41: evalaaron3bb1in -> evalaaron3bb1in : C'=1+A, G'=free, [ A>=C && 0>=free ], cost: 5-5*C+5*A 14.76/8.51 14.76/8.51 42: evalaaron3bb1in -> evalaaron3bb1in : A'=free_1, E'=1, G'=free, H'=1, Q'=free_1, [ A>=C && free>=1 && -1+A+E>=free_1 && free_1>=C && -2+free_1+E>=free_1 ], cost: -7+7*E 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Chained accelerated rules (with incoming rules): 14.76/8.51 14.76/8.51 Start location: evalaaron3start 14.76/8.51 14.76/8.51 32: evalaaron3start -> evalaaron3bb1in : A'=B, C'=D, E'=F, [], cost: 11 14.76/8.51 14.76/8.51 43: evalaaron3start -> evalaaron3bb1in : A'=free_1, C'=D, E'=-1+F, G'=free, H'=-1+F, Q'=free_1, [ B>=D && free>=1 && -1+F+B>=free_1 ], cost: 18 14.76/8.51 14.76/8.51 44: evalaaron3start -> evalaaron3bb1in : A'=B, C'=1+B, E'=F, G'=free, [ B>=D && 0>=free ], cost: 16-5*D+5*B 14.76/8.51 14.76/8.51 45: evalaaron3start -> evalaaron3bb1in : A'=free_1, C'=D, E'=1, G'=free, H'=1, Q'=free_1, [ B>=D && free>=1 && -1+F+B>=free_1 && free_1>=D && -2+free_1+F>=free_1 ], cost: 4+7*F 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Removed unreachable locations (and leaf rules with constant cost): 14.76/8.51 14.76/8.51 Start location: evalaaron3start 14.76/8.51 14.76/8.51 44: evalaaron3start -> evalaaron3bb1in : A'=B, C'=1+B, E'=F, G'=free, [ B>=D && 0>=free ], cost: 16-5*D+5*B 14.76/8.51 14.76/8.51 45: evalaaron3start -> evalaaron3bb1in : A'=free_1, C'=D, E'=1, G'=free, H'=1, Q'=free_1, [ B>=D && free>=1 && -1+F+B>=free_1 && free_1>=D && -2+free_1+F>=free_1 ], cost: 4+7*F 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 ### Computing asymptotic complexity ### 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Fully simplified ITS problem 14.76/8.51 14.76/8.51 Start location: evalaaron3start 14.76/8.51 14.76/8.51 44: evalaaron3start -> evalaaron3bb1in : A'=B, C'=1+B, E'=F, G'=free, [ B>=D && 0>=free ], cost: 16-5*D+5*B 14.76/8.51 14.76/8.51 45: evalaaron3start -> evalaaron3bb1in : A'=free_1, C'=D, E'=1, G'=free, H'=1, Q'=free_1, [ B>=D && free>=1 && -1+F+B>=free_1 && free_1>=D && -2+free_1+F>=free_1 ], cost: 4+7*F 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Computing asymptotic complexity for rule 44 14.76/8.51 14.76/8.51 Solved the limit problem by the following transformations: 14.76/8.51 14.76/8.51 Created initial limit problem: 14.76/8.51 14.76/8.51 1-D+B (+/+!), 1-free (+/+!), 16-5*D+5*B (+) [not solved] 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 removing all constraints (solved by SMT) 14.76/8.51 14.76/8.51 resulting limit problem: [solved] 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 applying transformation rule (C) using substitution {D==0,free==0,B==n} 14.76/8.51 14.76/8.51 resulting limit problem: 14.76/8.51 14.76/8.51 [solved] 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Solution: 14.76/8.51 14.76/8.51 D / 0 14.76/8.51 14.76/8.51 free / 0 14.76/8.51 14.76/8.51 B / n 14.76/8.51 14.76/8.51 Resulting cost 16+5*n has complexity: Poly(n^1) 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Found new complexity Poly(n^1). 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 Obtained the following overall complexity (w.r.t. the length of the input n): 14.76/8.51 14.76/8.51 Complexity: Poly(n^1) 14.76/8.51 14.76/8.51 Cpx degree: 1 14.76/8.51 14.76/8.51 Solved cost: 16+5*n 14.76/8.51 14.76/8.51 Rule cost: 16-5*D+5*B 14.76/8.51 14.76/8.51 Rule guard: [ B>=D && 0>=free ] 14.76/8.51 14.76/8.51 14.76/8.51 14.76/8.51 WORST_CASE(Omega(n^1),?) 14.76/8.51 14.76/8.51 14.76/8.51 ---------------------------------------- 14.76/8.51 14.76/8.51 (2) 14.76/8.51 BOUNDS(n^1, INF) 14.76/8.54 EOF