44.25/27.42 WORST_CASE(Omega(n^1), ?) 44.25/27.43 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 44.25/27.43 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 44.25/27.43 44.25/27.43 44.25/27.43 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^1, INF). 44.25/27.43 44.25/27.43 (0) CpxIntTrs 44.25/27.43 (1) Loat Proof [FINISHED, 1899 ms] 44.25/27.43 (2) BOUNDS(n^1, INF) 44.25/27.43 44.25/27.43 44.25/27.43 ---------------------------------------- 44.25/27.43 44.25/27.43 (0) 44.25/27.43 Obligation: 44.25/27.43 Complexity Int TRS consisting of the following rules: 44.25/27.43 eval_counterex1c_start(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_bb0_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_bb0_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_0(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_0(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_1(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_1(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_2(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_2(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_3(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_3(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_4(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_4(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_5(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_5(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_6(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_6(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_7(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_7(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_8(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_8(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_9(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_9(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_bb1_in(v_b, v_x, v_y, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_bb1_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_bb2_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v__01 >= 0 && 0 <= v__04 && v__04 <= v_n 44.25/27.43 eval_counterex1c_bb1_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c__critedge_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v__01 < 0 44.25/27.43 eval_counterex1c_bb1_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c__critedge_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: 0 > v__04 44.25/27.43 eval_counterex1c_bb1_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c__critedge_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v__04 > v_n 44.25/27.43 eval_counterex1c_bb2_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_NodeBlock_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_NodeBlock_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_LeafBlock_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v__0 < 1 44.25/27.43 eval_counterex1c_NodeBlock_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_LeafBlock8_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v__0 >= 1 44.25/27.43 eval_counterex1c_LeafBlock_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_bb3_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v__0 >= 0 && v__0 <= 0 44.25/27.43 eval_counterex1c_LeafBlock_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_NewDefault_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v__0 < 0 44.25/27.43 eval_counterex1c_LeafBlock_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_NewDefault_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v__0 > 0 44.25/27.43 eval_counterex1c_bb3_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_11(v__0, v__01, v__04, v__04 + 1, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_11(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_12(v__0, v__01, v__04, v_3, nondef_0, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_12(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_bb1_in(1, v__01, v_3, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v_4 > 0 44.25/27.43 eval_counterex1c_12(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_bb1_in(v__0, v__01, v_3, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v_4 <= 0 44.25/27.43 eval_counterex1c_LeafBlock8_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_bb4_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v__0 >= 1 && v__0 <= 1 44.25/27.43 eval_counterex1c_LeafBlock8_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_NewDefault_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v__0 < 1 44.25/27.43 eval_counterex1c_LeafBlock8_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_NewDefault_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v__0 > 1 44.25/27.43 eval_counterex1c_bb4_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_15(v__0, v__01, v__04, v_3, v_4, v__04 - 1, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_15(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_16(v__0, v__01, v__04, v_3, v_4, v_6, nondef_1, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c_16(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_bb1_in(0, v__01 - 1, v_6, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v_7 > 0 44.25/27.43 eval_counterex1c_16(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_bb1_in(v__0, v__01 - 1, v_6, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v_7 > 0 && v_7 <= 0 44.25/27.43 eval_counterex1c_16(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_bb1_in(0, v__01, v_6, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v_7 <= 0 && v_7 > 0 44.25/27.43 eval_counterex1c_16(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_bb1_in(v__0, v__01, v_6, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: v_7 <= 0 44.25/27.43 eval_counterex1c_NewDefault_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c__critedge_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 eval_counterex1c__critedge_in(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y) -> Com_1(eval_counterex1c_stop(v__0, v__01, v__04, v_3, v_4, v_6, v_7, v_b, v_n, v_x, v_y)) :|: TRUE 44.25/27.43 44.25/27.43 The start-symbols are:[eval_counterex1c_start_11] 44.25/27.43 44.25/27.43 44.25/27.43 ---------------------------------------- 44.25/27.43 44.25/27.43 (1) Loat Proof (FINISHED) 44.25/27.43 44.25/27.43 44.25/27.43 ### Pre-processing the ITS problem ### 44.25/27.43 44.25/27.43 44.25/27.43 44.25/27.43 Initial linear ITS problem 44.25/27.43 44.25/27.43 Start location: evalcounterex1cstart 44.25/27.43 44.25/27.43 0: evalcounterex1cstart -> evalcounterex1cbb0in : [], cost: 1 44.25/27.43 44.25/27.43 1: evalcounterex1cbb0in -> evalcounterex1c0 : [], cost: 1 44.25/27.43 44.25/27.43 2: evalcounterex1c0 -> evalcounterex1c1 : [], cost: 1 44.25/27.43 44.25/27.43 3: evalcounterex1c1 -> evalcounterex1c2 : [], cost: 1 44.25/27.43 44.25/27.43 4: evalcounterex1c2 -> evalcounterex1c3 : [], cost: 1 44.25/27.43 44.25/27.43 5: evalcounterex1c3 -> evalcounterex1c4 : [], cost: 1 44.25/27.43 44.25/27.43 6: evalcounterex1c4 -> evalcounterex1c5 : [], cost: 1 44.25/27.43 44.25/27.43 7: evalcounterex1c5 -> evalcounterex1c6 : [], cost: 1 44.25/27.43 44.25/27.43 8: evalcounterex1c6 -> evalcounterex1c7 : [], cost: 1 44.25/27.43 44.25/27.43 9: evalcounterex1c7 -> evalcounterex1c8 : [], cost: 1 44.25/27.43 44.25/27.43 10: evalcounterex1c8 -> evalcounterex1c9 : [], cost: 1 44.25/27.43 44.25/27.43 11: evalcounterex1c9 -> evalcounterex1cbb1in : A'=B, C'=D, E'=F, [], cost: 1 44.25/27.43 44.25/27.43 12: evalcounterex1cbb1in -> evalcounterex1cbb2in : [ C>=0 && E>=0 && G>=E ], cost: 1 44.25/27.43 44.25/27.43 13: evalcounterex1cbb1in -> evalcounterex1ccritedgein : [ 0>=1+C ], cost: 1 44.25/27.43 44.25/27.43 14: evalcounterex1cbb1in -> evalcounterex1ccritedgein : [ 0>=1+E ], cost: 1 44.25/27.43 44.25/27.43 15: evalcounterex1cbb1in -> evalcounterex1ccritedgein : [ E>=1+G ], cost: 1 44.25/27.43 44.25/27.43 16: evalcounterex1cbb2in -> evalcounterex1cNodeBlockin : [], cost: 1 44.25/27.43 44.25/27.43 17: evalcounterex1cNodeBlockin -> evalcounterex1cLeafBlockin : [ 0>=A ], cost: 1 44.25/27.43 44.25/27.43 18: evalcounterex1cNodeBlockin -> evalcounterex1cLeafBlock8in : [ A>=1 ], cost: 1 44.25/27.43 44.25/27.43 19: evalcounterex1cLeafBlockin -> evalcounterex1cbb3in : [ A==0 ], cost: 1 44.25/27.43 44.25/27.43 20: evalcounterex1cLeafBlockin -> evalcounterex1cNewDefaultin : [ 0>=1+A ], cost: 1 44.25/27.43 44.25/27.43 21: evalcounterex1cLeafBlockin -> evalcounterex1cNewDefaultin : [ A>=1 ], cost: 1 44.25/27.43 44.25/27.43 22: evalcounterex1cbb3in -> evalcounterex1c11 : H'=1+E, [], cost: 1 44.25/27.43 44.25/27.43 23: evalcounterex1c11 -> evalcounterex1c12 : Q'=free, [], cost: 1 44.25/27.43 44.25/27.43 24: evalcounterex1c12 -> evalcounterex1cbb1in : A'=1, E'=H, [ Q>=1 ], cost: 1 44.25/27.43 44.25/27.43 25: evalcounterex1c12 -> evalcounterex1cbb1in : E'=H, [ 0>=Q ], cost: 1 44.25/27.43 44.25/27.43 26: evalcounterex1cLeafBlock8in -> evalcounterex1cbb4in : [ A==1 ], cost: 1 44.25/27.43 44.25/27.43 27: evalcounterex1cLeafBlock8in -> evalcounterex1cNewDefaultin : [ 0>=A ], cost: 1 44.25/27.43 44.25/27.43 28: evalcounterex1cLeafBlock8in -> evalcounterex1cNewDefaultin : [ A>=2 ], cost: 1 44.25/27.43 44.25/27.43 29: evalcounterex1cbb4in -> evalcounterex1c15 : J'=-1+E, [], cost: 1 44.25/27.43 44.25/27.43 30: evalcounterex1c15 -> evalcounterex1c16 : K'=free_1, [], cost: 1 44.25/27.43 44.25/27.43 31: evalcounterex1c16 -> evalcounterex1cbb1in : A'=0, C'=-1+C, E'=J, [ K>=1 ], cost: 1 44.25/27.43 44.25/27.43 32: evalcounterex1c16 -> evalcounterex1cbb1in : C'=-1+C, E'=J, [ K>=1 && 0>=K ], cost: 1 44.25/27.43 44.25/27.43 33: evalcounterex1c16 -> evalcounterex1cbb1in : A'=0, E'=J, [ 0>=K && K>=1 ], cost: 1 44.25/27.43 44.25/27.43 34: evalcounterex1c16 -> evalcounterex1cbb1in : E'=J, [ 0>=K ], cost: 1 44.25/27.43 44.25/27.43 35: evalcounterex1cNewDefaultin -> evalcounterex1ccritedgein : [], cost: 1 44.25/27.43 44.25/27.43 36: evalcounterex1ccritedgein -> evalcounterex1cstop : [], cost: 1 44.25/27.43 44.25/27.43 44.25/27.43 44.25/27.43 Removed unreachable and leaf rules: 44.25/27.43 44.25/27.43 Start location: evalcounterex1cstart 44.25/27.43 44.25/27.43 0: evalcounterex1cstart -> evalcounterex1cbb0in : [], cost: 1 44.25/27.43 44.25/27.43 1: evalcounterex1cbb0in -> evalcounterex1c0 : [], cost: 1 44.25/27.43 44.25/27.43 2: evalcounterex1c0 -> evalcounterex1c1 : [], cost: 1 44.25/27.43 44.25/27.43 3: evalcounterex1c1 -> evalcounterex1c2 : [], cost: 1 44.25/27.43 44.25/27.43 4: evalcounterex1c2 -> evalcounterex1c3 : [], cost: 1 44.25/27.43 44.25/27.43 5: evalcounterex1c3 -> evalcounterex1c4 : [], cost: 1 44.25/27.43 44.25/27.43 6: evalcounterex1c4 -> evalcounterex1c5 : [], cost: 1 44.25/27.43 44.25/27.43 7: evalcounterex1c5 -> evalcounterex1c6 : [], cost: 1 44.25/27.43 44.25/27.43 8: evalcounterex1c6 -> evalcounterex1c7 : [], cost: 1 44.25/27.43 44.25/27.43 9: evalcounterex1c7 -> evalcounterex1c8 : [], cost: 1 44.25/27.43 44.25/27.43 10: evalcounterex1c8 -> evalcounterex1c9 : [], cost: 1 44.25/27.43 44.25/27.43 11: evalcounterex1c9 -> evalcounterex1cbb1in : A'=B, C'=D, E'=F, [], cost: 1 44.25/27.43 44.25/27.43 12: evalcounterex1cbb1in -> evalcounterex1cbb2in : [ C>=0 && E>=0 && G>=E ], cost: 1 44.25/27.43 44.25/27.43 16: evalcounterex1cbb2in -> evalcounterex1cNodeBlockin : [], cost: 1 44.25/27.43 44.25/27.43 17: evalcounterex1cNodeBlockin -> evalcounterex1cLeafBlockin : [ 0>=A ], cost: 1 44.25/27.43 44.25/27.43 18: evalcounterex1cNodeBlockin -> evalcounterex1cLeafBlock8in : [ A>=1 ], cost: 1 44.25/27.43 44.25/27.43 19: evalcounterex1cLeafBlockin -> evalcounterex1cbb3in : [ A==0 ], cost: 1 44.25/27.43 44.25/27.43 22: evalcounterex1cbb3in -> evalcounterex1c11 : H'=1+E, [], cost: 1 44.25/27.43 44.25/27.43 23: evalcounterex1c11 -> evalcounterex1c12 : Q'=free, [], cost: 1 44.25/27.43 44.25/27.43 24: evalcounterex1c12 -> evalcounterex1cbb1in : A'=1, E'=H, [ Q>=1 ], cost: 1 44.25/27.43 44.25/27.43 25: evalcounterex1c12 -> evalcounterex1cbb1in : E'=H, [ 0>=Q ], cost: 1 44.25/27.43 44.25/27.43 26: evalcounterex1cLeafBlock8in -> evalcounterex1cbb4in : [ A==1 ], cost: 1 44.25/27.43 44.25/27.43 29: evalcounterex1cbb4in -> evalcounterex1c15 : J'=-1+E, [], cost: 1 44.25/27.43 44.25/27.43 30: evalcounterex1c15 -> evalcounterex1c16 : K'=free_1, [], cost: 1 44.25/27.43 44.25/27.43 31: evalcounterex1c16 -> evalcounterex1cbb1in : A'=0, C'=-1+C, E'=J, [ K>=1 ], cost: 1 44.25/27.43 44.25/27.43 32: evalcounterex1c16 -> evalcounterex1cbb1in : C'=-1+C, E'=J, [ K>=1 && 0>=K ], cost: 1 44.25/27.43 44.25/27.43 33: evalcounterex1c16 -> evalcounterex1cbb1in : A'=0, E'=J, [ 0>=K && K>=1 ], cost: 1 44.25/27.43 44.25/27.43 34: evalcounterex1c16 -> evalcounterex1cbb1in : E'=J, [ 0>=K ], cost: 1 44.25/27.43 44.25/27.43 44.25/27.43 44.25/27.43 Removed rules with unsatisfiable guard: 44.25/27.43 44.25/27.43 Start location: evalcounterex1cstart 44.25/27.43 44.25/27.43 0: evalcounterex1cstart -> evalcounterex1cbb0in : [], cost: 1 44.25/27.43 44.25/27.43 1: evalcounterex1cbb0in -> evalcounterex1c0 : [], cost: 1 44.25/27.43 44.25/27.43 2: evalcounterex1c0 -> evalcounterex1c1 : [], cost: 1 44.25/27.43 44.25/27.43 3: evalcounterex1c1 -> evalcounterex1c2 : [], cost: 1 44.25/27.43 44.25/27.43 4: evalcounterex1c2 -> evalcounterex1c3 : [], cost: 1 44.25/27.43 44.25/27.43 5: evalcounterex1c3 -> evalcounterex1c4 : [], cost: 1 44.25/27.43 44.25/27.43 6: evalcounterex1c4 -> evalcounterex1c5 : [], cost: 1 44.25/27.43 44.25/27.43 7: evalcounterex1c5 -> evalcounterex1c6 : [], cost: 1 44.25/27.43 44.25/27.43 8: evalcounterex1c6 -> evalcounterex1c7 : [], cost: 1 44.25/27.43 44.25/27.43 9: evalcounterex1c7 -> evalcounterex1c8 : [], cost: 1 44.25/27.43 44.25/27.43 10: evalcounterex1c8 -> evalcounterex1c9 : [], cost: 1 44.25/27.43 44.25/27.43 11: evalcounterex1c9 -> evalcounterex1cbb1in : A'=B, C'=D, E'=F, [], cost: 1 44.25/27.43 44.25/27.43 12: evalcounterex1cbb1in -> evalcounterex1cbb2in : [ C>=0 && E>=0 && G>=E ], cost: 1 44.25/27.43 44.25/27.43 16: evalcounterex1cbb2in -> evalcounterex1cNodeBlockin : [], cost: 1 44.25/27.43 44.25/27.43 17: evalcounterex1cNodeBlockin -> evalcounterex1cLeafBlockin : [ 0>=A ], cost: 1 44.25/27.43 44.25/27.43 18: evalcounterex1cNodeBlockin -> evalcounterex1cLeafBlock8in : [ A>=1 ], cost: 1 44.25/27.43 44.25/27.43 19: evalcounterex1cLeafBlockin -> evalcounterex1cbb3in : [ A==0 ], cost: 1 44.25/27.43 44.25/27.43 22: evalcounterex1cbb3in -> evalcounterex1c11 : H'=1+E, [], cost: 1 44.25/27.43 44.25/27.43 23: evalcounterex1c11 -> evalcounterex1c12 : Q'=free, [], cost: 1 44.25/27.43 44.25/27.43 24: evalcounterex1c12 -> evalcounterex1cbb1in : A'=1, E'=H, [ Q>=1 ], cost: 1 44.25/27.43 44.25/27.43 25: evalcounterex1c12 -> evalcounterex1cbb1in : E'=H, [ 0>=Q ], cost: 1 44.25/27.43 44.25/27.43 26: evalcounterex1cLeafBlock8in -> evalcounterex1cbb4in : [ A==1 ], cost: 1 44.25/27.43 44.25/27.43 29: evalcounterex1cbb4in -> evalcounterex1c15 : J'=-1+E, [], cost: 1 44.25/27.43 44.25/27.43 30: evalcounterex1c15 -> evalcounterex1c16 : K'=free_1, [], cost: 1 44.25/27.43 44.25/27.43 31: evalcounterex1c16 -> evalcounterex1cbb1in : A'=0, C'=-1+C, E'=J, [ K>=1 ], cost: 1 44.25/27.43 44.25/27.43 34: evalcounterex1c16 -> evalcounterex1cbb1in : E'=J, [ 0>=K ], cost: 1 44.25/27.43 44.25/27.43 44.25/27.43 44.25/27.43 ### Simplification by acceleration and chaining ### 44.25/27.43 44.25/27.43 44.25/27.43 44.25/27.43 Eliminated locations (on linear paths): 44.25/27.43 44.25/27.43 Start location: evalcounterex1cstart 44.25/27.43 44.25/27.43 47: evalcounterex1cstart -> evalcounterex1cbb1in : A'=B, C'=D, E'=F, [], cost: 12 44.25/27.43 44.25/27.43 48: evalcounterex1cbb1in -> evalcounterex1cNodeBlockin : [ C>=0 && E>=0 && G>=E ], cost: 2 44.25/27.43 44.25/27.43 53: evalcounterex1cNodeBlockin -> evalcounterex1c12 : H'=1+E, Q'=free, [ A==0 ], cost: 4 44.25/27.43 44.25/27.43 54: evalcounterex1cNodeBlockin -> evalcounterex1c16 : J'=-1+E, K'=free_1, [ A==1 ], cost: 4 44.25/27.43 44.25/27.43 24: evalcounterex1c12 -> evalcounterex1cbb1in : A'=1, E'=H, [ Q>=1 ], cost: 1 44.25/27.43 44.25/27.43 25: evalcounterex1c12 -> evalcounterex1cbb1in : E'=H, [ 0>=Q ], cost: 1 44.25/27.43 44.25/27.43 31: evalcounterex1c16 -> evalcounterex1cbb1in : A'=0, C'=-1+C, E'=J, [ K>=1 ], cost: 1 44.25/27.43 44.25/27.43 34: evalcounterex1c16 -> evalcounterex1cbb1in : E'=J, [ 0>=K ], cost: 1 44.25/27.43 44.25/27.43 44.25/27.43 44.25/27.43 Eliminated locations (on tree-shaped paths): 44.25/27.43 44.25/27.43 Start location: evalcounterex1cstart 44.25/27.43 44.25/27.43 47: evalcounterex1cstart -> evalcounterex1cbb1in : A'=B, C'=D, E'=F, [], cost: 12 44.25/27.43 44.25/27.43 55: evalcounterex1cbb1in -> evalcounterex1c12 : H'=1+E, Q'=free, [ C>=0 && E>=0 && G>=E && A==0 ], cost: 6 44.25/27.43 44.25/27.43 56: evalcounterex1cbb1in -> evalcounterex1c16 : J'=-1+E, K'=free_1, [ C>=0 && E>=0 && G>=E && A==1 ], cost: 6 44.25/27.43 44.25/27.43 24: evalcounterex1c12 -> evalcounterex1cbb1in : A'=1, E'=H, [ Q>=1 ], cost: 1 44.25/27.43 44.25/27.43 25: evalcounterex1c12 -> evalcounterex1cbb1in : E'=H, [ 0>=Q ], cost: 1 44.25/27.43 44.25/27.43 31: evalcounterex1c16 -> evalcounterex1cbb1in : A'=0, C'=-1+C, E'=J, [ K>=1 ], cost: 1 44.25/27.43 44.25/27.43 34: evalcounterex1c16 -> evalcounterex1cbb1in : E'=J, [ 0>=K ], cost: 1 44.25/27.43 44.25/27.43 44.25/27.43 44.25/27.43 Eliminated locations (on tree-shaped paths): 44.25/27.43 44.25/27.43 Start location: evalcounterex1cstart 44.25/27.43 44.25/27.43 47: evalcounterex1cstart -> evalcounterex1cbb1in : A'=B, C'=D, E'=F, [], cost: 12 44.25/27.43 44.25/27.43 57: evalcounterex1cbb1in -> evalcounterex1cbb1in : A'=1, E'=1+E, H'=1+E, Q'=free, [ C>=0 && E>=0 && G>=E && A==0 && free>=1 ], cost: 7 44.25/27.43 44.25/27.43 58: evalcounterex1cbb1in -> evalcounterex1cbb1in : E'=1+E, H'=1+E, Q'=free, [ C>=0 && E>=0 && G>=E && A==0 && 0>=free ], cost: 7 44.25/27.43 44.25/27.43 59: evalcounterex1cbb1in -> evalcounterex1cbb1in : A'=0, C'=-1+C, E'=-1+E, J'=-1+E, K'=free_1, [ C>=0 && E>=0 && G>=E && A==1 && free_1>=1 ], cost: 7 44.25/27.43 44.25/27.43 60: evalcounterex1cbb1in -> evalcounterex1cbb1in : E'=-1+E, J'=-1+E, K'=free_1, [ C>=0 && E>=0 && G>=E && A==1 && 0>=free_1 ], cost: 7 44.25/27.43 44.25/27.43 44.25/27.43 44.25/27.43 Accelerating simple loops of location 12. 44.25/27.43 44.25/27.43 Accelerating the following rules: 44.25/27.43 44.25/27.43 57: evalcounterex1cbb1in -> evalcounterex1cbb1in : A'=1, E'=1+E, H'=1+E, Q'=free, [ C>=0 && E>=0 && G>=E && A==0 && free>=1 ], cost: 7 44.25/27.43 44.25/27.43 58: evalcounterex1cbb1in -> evalcounterex1cbb1in : E'=1+E, H'=1+E, Q'=free, [ C>=0 && E>=0 && G>=E && A==0 && 0>=free ], cost: 7 44.25/27.43 44.25/27.43 59: evalcounterex1cbb1in -> evalcounterex1cbb1in : A'=0, C'=-1+C, E'=-1+E, J'=-1+E, K'=free_1, [ C>=0 && E>=0 && G>=E && A==1 && free_1>=1 ], cost: 7 44.25/27.43 44.25/27.43 60: evalcounterex1cbb1in -> evalcounterex1cbb1in : E'=-1+E, J'=-1+E, K'=free_1, [ C>=0 && E>=0 && G>=E && A==1 && 0>=free_1 ], cost: 7 44.25/27.43 44.25/27.43 44.25/27.43 44.25/27.43 Accelerated rule 57 with metering function -A, yielding the new rule 61. 44.25/27.43 44.25/27.43 Accelerated rule 58 with metering function 1+G-E, yielding the new rule 62. 44.25/27.43 44.25/27.43 Accelerated rule 59 with metering function -1+A, yielding the new rule 63. 44.25/27.43 44.25/27.43 Accelerated rule 60 with metering function 1+E, yielding the new rule 64. 44.25/27.43 44.25/27.43 Removing the simple loops: 57 58 59 60. 44.25/27.43 44.25/27.43 44.25/27.43 44.25/27.43 Accelerated all simple loops using metering functions (where possible): 44.25/27.43 44.25/27.43 Start location: evalcounterex1cstart 44.25/27.43 44.25/27.43 47: evalcounterex1cstart -> evalcounterex1cbb1in : A'=B, C'=D, E'=F, [], cost: 12 44.25/27.43 44.25/27.43 61: evalcounterex1cbb1in -> evalcounterex1cbb1in : A'=1, E'=-A+E, H'=-A+E, Q'=free, [ C>=0 && E>=0 && G>=E && A==0 && free>=1 && -A>=1 ], cost: -7*A 44.25/27.43 44.25/27.43 62: evalcounterex1cbb1in -> evalcounterex1cbb1in : E'=1+G, H'=1+G, Q'=free, [ C>=0 && E>=0 && G>=E && A==0 && 0>=free ], cost: 7+7*G-7*E 44.32/27.43 44.32/27.43 63: evalcounterex1cbb1in -> evalcounterex1cbb1in : A'=0, C'=1+C-A, E'=1-A+E, J'=1-A+E, K'=free_1, [ C>=0 && E>=0 && G>=E && A==1 && free_1>=1 && -1+A>=1 ], cost: -7+7*A 44.32/27.43 44.32/27.43 64: evalcounterex1cbb1in -> evalcounterex1cbb1in : E'=-1, J'=-1, K'=free_1, [ C>=0 && E>=0 && G>=E && A==1 && 0>=free_1 ], cost: 7+7*E 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 Chained accelerated rules (with incoming rules): 44.32/27.43 44.32/27.43 Start location: evalcounterex1cstart 44.32/27.43 44.32/27.43 47: evalcounterex1cstart -> evalcounterex1cbb1in : A'=B, C'=D, E'=F, [], cost: 12 44.32/27.43 44.32/27.43 65: evalcounterex1cstart -> evalcounterex1cbb1in : A'=B, C'=D, E'=1+G, H'=1+G, Q'=free, [ D>=0 && F>=0 && G>=F && B==0 && 0>=free ], cost: 19-7*F+7*G 44.32/27.43 44.32/27.43 66: evalcounterex1cstart -> evalcounterex1cbb1in : A'=B, C'=D, E'=-1, J'=-1, K'=free_1, [ D>=0 && F>=0 && G>=F && B==1 && 0>=free_1 ], cost: 19+7*F 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 Removed unreachable locations (and leaf rules with constant cost): 44.32/27.43 44.32/27.43 Start location: evalcounterex1cstart 44.32/27.43 44.32/27.43 65: evalcounterex1cstart -> evalcounterex1cbb1in : A'=B, C'=D, E'=1+G, H'=1+G, Q'=free, [ D>=0 && F>=0 && G>=F && B==0 && 0>=free ], cost: 19-7*F+7*G 44.32/27.43 44.32/27.43 66: evalcounterex1cstart -> evalcounterex1cbb1in : A'=B, C'=D, E'=-1, J'=-1, K'=free_1, [ D>=0 && F>=0 && G>=F && B==1 && 0>=free_1 ], cost: 19+7*F 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 ### Computing asymptotic complexity ### 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 Fully simplified ITS problem 44.32/27.43 44.32/27.43 Start location: evalcounterex1cstart 44.32/27.43 44.32/27.43 65: evalcounterex1cstart -> evalcounterex1cbb1in : A'=B, C'=D, E'=1+G, H'=1+G, Q'=free, [ D>=0 && F>=0 && G>=F && B==0 && 0>=free ], cost: 19-7*F+7*G 44.32/27.43 44.32/27.43 66: evalcounterex1cstart -> evalcounterex1cbb1in : A'=B, C'=D, E'=-1, J'=-1, K'=free_1, [ D>=0 && F>=0 && G>=F && B==1 && 0>=free_1 ], cost: 19+7*F 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 Computing asymptotic complexity for rule 65 44.32/27.43 44.32/27.43 Solved the limit problem by the following transformations: 44.32/27.43 44.32/27.43 Created initial limit problem: 44.32/27.43 44.32/27.43 1-F+G (+/+!), 1+B (+/+!), 19-7*F+7*G (+), 1-B (+/+!), 1+D (+/+!), 1-free (+/+!), 1+F (+/+!) [not solved] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 applying transformation rule (C) using substitution {B==0} 44.32/27.43 44.32/27.43 resulting limit problem: 44.32/27.43 44.32/27.43 1 (+/+!), 1-F+G (+/+!), 19-7*F+7*G (+), 1+D (+/+!), 1-free (+/+!), 1+F (+/+!) [not solved] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 applying transformation rule (C) using substitution {D==0} 44.32/27.43 44.32/27.43 resulting limit problem: 44.32/27.43 44.32/27.43 1 (+/+!), 1-F+G (+/+!), 19-7*F+7*G (+), 1-free (+/+!), 1+F (+/+!) [not solved] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 applying transformation rule (C) using substitution {F==0} 44.32/27.43 44.32/27.43 resulting limit problem: 44.32/27.43 44.32/27.43 1 (+/+!), 19+7*G (+), 1+G (+/+!), 1-free (+/+!) [not solved] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 applying transformation rule (C) using substitution {G==F} 44.32/27.43 44.32/27.43 resulting limit problem: 44.32/27.43 44.32/27.43 1 (+/+!), 19+7*F (+), 1-free (+/+!), 1+F (+/+!) [not solved] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 applying transformation rule (C) using substitution {free==0} 44.32/27.43 44.32/27.43 resulting limit problem: 44.32/27.43 44.32/27.43 1 (+/+!), 19+7*F (+), 1+F (+/+!) [not solved] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 applying transformation rule (B), deleting 1 (+/+!) 44.32/27.43 44.32/27.43 resulting limit problem: 44.32/27.43 44.32/27.43 19+7*F (+), 1+F (+/+!) [not solved] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 applying transformation rule (D), replacing 19+7*F (+) by 7*F (+) 44.32/27.43 44.32/27.43 resulting limit problem: 44.32/27.43 44.32/27.43 7*F (+), 1+F (+/+!) [not solved] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 applying transformation rule (D), replacing 1+F (+/+!) by F (+) 44.32/27.43 44.32/27.43 resulting limit problem: 44.32/27.43 44.32/27.43 F (+), 7*F (+) [not solved] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 applying transformation rule (A), replacing 7*F (+) by F (+) and 7 (+!) using + limit vector (+,+!) 44.32/27.43 44.32/27.43 resulting limit problem: 44.32/27.43 44.32/27.43 F (+), 7 (+!) [not solved] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 applying transformation rule (B), deleting 7 (+!) 44.32/27.43 44.32/27.43 resulting limit problem: 44.32/27.43 44.32/27.43 F (+) [solved] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 Solution: 44.32/27.43 44.32/27.43 F / 0 44.32/27.43 44.32/27.43 free / 0 44.32/27.43 44.32/27.43 G / n 44.32/27.43 44.32/27.43 D / 0 44.32/27.43 44.32/27.43 B / 0 44.32/27.43 44.32/27.43 Resulting cost 19+7*n has complexity: Poly(n^1) 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 Found new complexity Poly(n^1). 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 Obtained the following overall complexity (w.r.t. the length of the input n): 44.32/27.43 44.32/27.43 Complexity: Poly(n^1) 44.32/27.43 44.32/27.43 Cpx degree: 1 44.32/27.43 44.32/27.43 Solved cost: 19+7*n 44.32/27.43 44.32/27.43 Rule cost: 19-7*F+7*G 44.32/27.43 44.32/27.43 Rule guard: [ D>=0 && F>=0 && G>=F && B==0 && 0>=free ] 44.32/27.43 44.32/27.43 44.32/27.43 44.32/27.43 WORST_CASE(Omega(n^1),?) 44.32/27.43 44.32/27.43 44.32/27.43 ---------------------------------------- 44.32/27.43 44.32/27.43 (2) 44.32/27.43 BOUNDS(n^1, INF) 44.32/27.44 EOF