5.53/2.55 WORST_CASE(Omega(n^1), O(n^1)) 5.53/2.56 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 5.53/2.56 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 5.53/2.56 5.53/2.56 5.53/2.56 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^1, n^1). 5.53/2.56 5.53/2.56 (0) CpxIntTrs 5.53/2.56 (1) Koat Proof [FINISHED, 322 ms] 5.53/2.56 (2) BOUNDS(1, n^1) 5.53/2.56 (3) Loat Proof [FINISHED, 819 ms] 5.53/2.56 (4) BOUNDS(n^1, INF) 5.53/2.56 5.53/2.56 5.53/2.56 ---------------------------------------- 5.53/2.56 5.53/2.56 (0) 5.53/2.56 Obligation: 5.53/2.56 Complexity Int TRS consisting of the following rules: 5.53/2.56 eval_speedpldi2_start(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_bb0_in(v_m, v_n, v_v1_0, v_v2_0)) :|: TRUE 5.53/2.56 eval_speedpldi2_bb0_in(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_0(v_m, v_n, v_v1_0, v_v2_0)) :|: TRUE 5.53/2.56 eval_speedpldi2_0(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_1(v_m, v_n, v_v1_0, v_v2_0)) :|: TRUE 5.53/2.56 eval_speedpldi2_1(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_2(v_m, v_n, v_v1_0, v_v2_0)) :|: TRUE 5.53/2.56 eval_speedpldi2_2(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_bb1_in(v_m, v_n, v_n, 0)) :|: v_n >= 0 && v_m > 0 5.53/2.56 eval_speedpldi2_2(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_bb4_in(v_m, v_n, v_v1_0, v_v2_0)) :|: v_n < 0 5.53/2.56 eval_speedpldi2_2(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_bb4_in(v_m, v_n, v_v1_0, v_v2_0)) :|: v_m <= 0 5.53/2.56 eval_speedpldi2_bb1_in(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_bb2_in(v_m, v_n, v_v1_0, v_v2_0)) :|: v_v1_0 > 0 5.53/2.56 eval_speedpldi2_bb1_in(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_bb4_in(v_m, v_n, v_v1_0, v_v2_0)) :|: v_v1_0 <= 0 5.53/2.56 eval_speedpldi2_bb2_in(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_bb3_in(v_m, v_n, v_v1_0, v_v2_0)) :|: v_v2_0 < v_m 5.53/2.56 eval_speedpldi2_bb2_in(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_bb1_in(v_m, v_n, v_v1_0, 0)) :|: v_v2_0 >= v_m 5.53/2.56 eval_speedpldi2_bb3_in(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_bb1_in(v_m, v_n, v_v1_0 - 1, v_v2_0 + 1)) :|: TRUE 5.53/2.56 eval_speedpldi2_bb4_in(v_m, v_n, v_v1_0, v_v2_0) -> Com_1(eval_speedpldi2_stop(v_m, v_n, v_v1_0, v_v2_0)) :|: TRUE 5.53/2.56 5.53/2.56 The start-symbols are:[eval_speedpldi2_start_4] 5.53/2.56 5.53/2.56 5.53/2.56 ---------------------------------------- 5.53/2.56 5.53/2.56 (1) Koat Proof (FINISHED) 5.53/2.56 YES(?, 28*ar_0 + 15) 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Initial complexity problem: 5.53/2.56 5.53/2.56 1: T: 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi20(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi20(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi21(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi21(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi22(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_0, 0)) [ ar_0 >= 0 /\ ar_1 >= 1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 + 1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_2 >= 1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_2 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 >= ar_3 + 1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2, 0)) [ ar_3 >= ar_1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2 - 1, ar_3 + 1)) 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2stop(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.53/2.56 5.53/2.56 start location: koat_start 5.53/2.56 5.53/2.56 leaf cost: 0 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Repeatedly propagating knowledge in problem 1 produces the following problem: 5.53/2.56 5.53/2.56 2: T: 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi20(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi20(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi21(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi21(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi22(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_0, 0)) [ ar_0 >= 0 /\ ar_1 >= 1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 + 1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_2 >= 1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_2 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 >= ar_3 + 1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2, 0)) [ ar_3 >= ar_1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2 - 1, ar_3 + 1)) 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2stop(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.53/2.56 5.53/2.56 start location: koat_start 5.53/2.56 5.53/2.56 leaf cost: 0 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 A polynomial rank function with 5.53/2.56 5.53/2.56 Pol(evalspeedpldi2start) = 2 5.53/2.56 5.53/2.56 Pol(evalspeedpldi2bb0in) = 2 5.53/2.56 5.53/2.56 Pol(evalspeedpldi20) = 2 5.53/2.56 5.53/2.56 Pol(evalspeedpldi21) = 2 5.53/2.56 5.53/2.56 Pol(evalspeedpldi22) = 2 5.53/2.56 5.53/2.56 Pol(evalspeedpldi2bb1in) = 2 5.53/2.56 5.53/2.56 Pol(evalspeedpldi2bb4in) = 1 5.53/2.56 5.53/2.56 Pol(evalspeedpldi2bb2in) = 2 5.53/2.56 5.53/2.56 Pol(evalspeedpldi2bb3in) = 2 5.53/2.56 5.53/2.56 Pol(evalspeedpldi2stop) = 0 5.53/2.56 5.53/2.56 Pol(koat_start) = 2 5.53/2.56 5.53/2.56 orients all transitions weakly and the transitions 5.53/2.56 5.53/2.56 evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2stop(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_2 ] 5.53/2.56 5.53/2.56 strictly and produces the following problem: 5.53/2.56 5.53/2.56 3: T: 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi20(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi20(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi21(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi21(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi22(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_0, 0)) [ ar_0 >= 0 /\ ar_1 >= 1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 + 1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_2 >= 1 ] 5.53/2.56 5.53/2.56 (Comp: 2, Cost: 1) evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_2 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 >= ar_3 + 1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2, 0)) [ ar_3 >= ar_1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2 - 1, ar_3 + 1)) 5.53/2.56 5.53/2.56 (Comp: 2, Cost: 1) evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2stop(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.53/2.56 5.53/2.56 start location: koat_start 5.53/2.56 5.53/2.56 leaf cost: 0 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Applied AI with 'oct' on problem 3 to obtain the following invariants: 5.53/2.56 5.53/2.56 For symbol evalspeedpldi2bb1in: X_4 >= 0 /\ X_3 + X_4 >= 0 /\ X_2 + X_4 - 1 >= 0 /\ X_1 + X_4 >= 0 /\ X_1 - X_3 >= 0 /\ X_3 >= 0 /\ X_2 + X_3 - 1 >= 0 /\ X_1 + X_3 >= 0 /\ X_2 - 1 >= 0 /\ X_1 + X_2 - 1 >= 0 /\ X_1 >= 0 5.53/2.56 5.53/2.56 For symbol evalspeedpldi2bb2in: X_4 >= 0 /\ X_3 + X_4 - 1 >= 0 /\ X_2 + X_4 - 1 >= 0 /\ X_1 + X_4 - 1 >= 0 /\ X_1 - X_3 >= 0 /\ X_3 - 1 >= 0 /\ X_2 + X_3 - 2 >= 0 /\ X_1 + X_3 - 2 >= 0 /\ X_2 - 1 >= 0 /\ X_1 + X_2 - 2 >= 0 /\ X_1 - 1 >= 0 5.53/2.56 5.53/2.56 For symbol evalspeedpldi2bb3in: X_2 - X_4 - 1 >= 0 /\ X_4 >= 0 /\ X_3 + X_4 - 1 >= 0 /\ X_2 + X_4 - 1 >= 0 /\ X_1 + X_4 - 1 >= 0 /\ X_1 - X_3 >= 0 /\ X_3 - 1 >= 0 /\ X_2 + X_3 - 2 >= 0 /\ X_1 + X_3 - 2 >= 0 /\ X_2 - 1 >= 0 /\ X_1 + X_2 - 2 >= 0 /\ X_1 - 1 >= 0 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 This yielded the following problem: 5.53/2.56 5.53/2.56 4: T: 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.53/2.56 5.53/2.56 (Comp: 2, Cost: 1) evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2stop(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2 - 1, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2, 0)) [ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_3 >= ar_1 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_3 + 1 ] 5.53/2.56 5.53/2.56 (Comp: 2, Cost: 1) evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ ar_0 + ar_2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ 0 >= ar_2 ] 5.53/2.56 5.53/2.56 (Comp: ?, Cost: 1) evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ ar_0 + ar_2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_2 >= 1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 + 1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_0, 0)) [ ar_0 >= 0 /\ ar_1 >= 1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi21(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi22(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi20(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi21(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi20(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 start location: koat_start 5.53/2.56 5.53/2.56 leaf cost: 0 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 A polynomial rank function with 5.53/2.56 5.53/2.56 Pol(evalspeedpldi2bb3in) = 7*V_3 + 4*V_4 - 1 5.53/2.56 5.53/2.56 Pol(evalspeedpldi2bb1in) = 7*V_3 + 4*V_4 + 1 5.53/2.56 5.53/2.56 Pol(evalspeedpldi2bb2in) = 7*V_3 + 4*V_4 5.53/2.56 5.53/2.56 and size complexities 5.53/2.56 5.53/2.56 S("evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3))", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3))", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3))", 0-2) = ar_2 5.53/2.56 5.53/2.56 S("evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3))", 0-3) = ar_3 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi20(ar_0, ar_1, ar_2, ar_3))", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi20(ar_0, ar_1, ar_2, ar_3))", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi20(ar_0, ar_1, ar_2, ar_3))", 0-2) = ar_2 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi20(ar_0, ar_1, ar_2, ar_3))", 0-3) = ar_3 5.53/2.56 5.53/2.56 S("evalspeedpldi20(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi21(ar_0, ar_1, ar_2, ar_3))", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi20(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi21(ar_0, ar_1, ar_2, ar_3))", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi20(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi21(ar_0, ar_1, ar_2, ar_3))", 0-2) = ar_2 5.53/2.56 5.53/2.56 S("evalspeedpldi20(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi21(ar_0, ar_1, ar_2, ar_3))", 0-3) = ar_3 5.53/2.56 5.53/2.56 S("evalspeedpldi21(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi22(ar_0, ar_1, ar_2, ar_3))", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi21(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi22(ar_0, ar_1, ar_2, ar_3))", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi21(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi22(ar_0, ar_1, ar_2, ar_3))", 0-2) = ar_2 5.53/2.56 5.53/2.56 S("evalspeedpldi21(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi22(ar_0, ar_1, ar_2, ar_3))", 0-3) = ar_3 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_0, 0)) [ ar_0 >= 0 /\\ ar_1 >= 1 ]", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_0, 0)) [ ar_0 >= 0 /\\ ar_1 >= 1 ]", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_0, 0)) [ ar_0 >= 0 /\\ ar_1 >= 1 ]", 0-2) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_0, 0)) [ ar_0 >= 0 /\\ ar_1 >= 1 ]", 0-3) = 0 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 + 1 ]", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 + 1 ]", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 + 1 ]", 0-2) = ar_2 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 + 1 ]", 0-3) = ar_3 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_1 ]", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_1 ]", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_1 ]", 0-2) = ar_2 5.53/2.56 5.53/2.56 S("evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_1 ]", 0-3) = ar_3 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 1 >= 0 /\\ ar_0 + ar_2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 1 >= 0 /\\ ar_0 >= 0 /\\ ar_2 >= 1 ]", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 1 >= 0 /\\ ar_0 + ar_2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 1 >= 0 /\\ ar_0 >= 0 /\\ ar_2 >= 1 ]", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 1 >= 0 /\\ ar_0 + ar_2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 1 >= 0 /\\ ar_0 >= 0 /\\ ar_2 >= 1 ]", 0-2) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 1 >= 0 /\\ ar_0 + ar_2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 1 >= 0 /\\ ar_0 >= 0 /\\ ar_2 >= 1 ]", 0-3) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 1 >= 0 /\\ ar_0 + ar_2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 1 >= 0 /\\ ar_0 >= 0 /\\ 0 >= ar_2 ]", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 1 >= 0 /\\ ar_0 + ar_2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 1 >= 0 /\\ ar_0 >= 0 /\\ 0 >= ar_2 ]", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 1 >= 0 /\\ ar_0 + ar_2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 1 >= 0 /\\ ar_0 >= 0 /\\ 0 >= ar_2 ]", 0-2) = 0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 1 >= 0 /\\ ar_0 + ar_2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 1 >= 0 /\\ ar_0 >= 0 /\\ 0 >= ar_2 ]", 0-3) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-2) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-3) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2, 0)) [ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2, 0)) [ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2, 0)) [ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-2) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2, 0)) [ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-3) = 0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2 - 1, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2 - 1, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2 - 1, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-2) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2 - 1, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 1 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_0 - ar_2 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ ar_1 - 1 >= 0 /\\ ar_0 + ar_1 - 2 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-3) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2stop(ar_0, ar_1, ar_2, ar_3))", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2stop(ar_0, ar_1, ar_2, ar_3))", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2stop(ar_0, ar_1, ar_2, ar_3))", 0-2) = ar_2 5.53/2.56 5.53/2.56 S("evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2stop(ar_0, ar_1, ar_2, ar_3))", 0-3) = ar_1 + ar_3 5.53/2.56 5.53/2.56 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-0) = ar_0 5.53/2.56 5.53/2.56 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-1) = ar_1 5.53/2.56 5.53/2.56 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-2) = ar_2 5.53/2.56 5.53/2.56 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-3) = ar_3 5.53/2.56 5.53/2.56 orients the transitions 5.53/2.56 5.53/2.56 evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2 - 1, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 ] 5.53/2.56 5.53/2.56 evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_3 + 1 ] 5.53/2.56 5.53/2.56 evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2, 0)) [ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_3 >= ar_1 ] 5.53/2.56 5.53/2.56 evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ ar_0 + ar_2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_2 >= 1 ] 5.53/2.56 5.53/2.56 weakly and the transitions 5.53/2.56 5.53/2.56 evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2 - 1, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 ] 5.53/2.56 5.53/2.56 evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_3 + 1 ] 5.53/2.56 5.53/2.56 evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2, 0)) [ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_3 >= ar_1 ] 5.53/2.56 5.53/2.56 evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ ar_0 + ar_2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_2 >= 1 ] 5.53/2.56 5.53/2.56 strictly and produces the following problem: 5.53/2.56 5.53/2.56 5: T: 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.53/2.56 5.53/2.56 (Comp: 2, Cost: 1) evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2stop(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 7*ar_0 + 1, Cost: 1) evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2 - 1, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 ] 5.53/2.56 5.53/2.56 (Comp: 7*ar_0 + 1, Cost: 1) evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_2, 0)) [ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_3 >= ar_1 ] 5.53/2.56 5.53/2.56 (Comp: 7*ar_0 + 1, Cost: 1) evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_3 + 1 ] 5.53/2.56 5.53/2.56 (Comp: 2, Cost: 1) evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ ar_0 + ar_2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ 0 >= ar_2 ] 5.53/2.56 5.53/2.56 (Comp: 7*ar_0 + 1, Cost: 1) evalspeedpldi2bb1in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ ar_0 + ar_2 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_2 >= 1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb4in(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 + 1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi22(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb1in(ar_0, ar_1, ar_0, 0)) [ ar_0 >= 0 /\ ar_1 >= 1 ] 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi21(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi22(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi20(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi21(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi20(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 (Comp: 1, Cost: 1) evalspeedpldi2start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi2bb0in(ar_0, ar_1, ar_2, ar_3)) 5.53/2.56 5.53/2.56 start location: koat_start 5.53/2.56 5.53/2.56 leaf cost: 0 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Complexity upper bound 28*ar_0 + 15 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Time: 0.348 sec (SMT: 0.278 sec) 5.53/2.56 5.53/2.56 5.53/2.56 ---------------------------------------- 5.53/2.56 5.53/2.56 (2) 5.53/2.56 BOUNDS(1, n^1) 5.53/2.56 5.53/2.56 ---------------------------------------- 5.53/2.56 5.53/2.56 (3) Loat Proof (FINISHED) 5.53/2.56 5.53/2.56 5.53/2.56 ### Pre-processing the ITS problem ### 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Initial linear ITS problem 5.53/2.56 5.53/2.56 Start location: evalspeedpldi2start 5.53/2.56 5.53/2.56 0: evalspeedpldi2start -> evalspeedpldi2bb0in : [], cost: 1 5.53/2.56 5.53/2.56 1: evalspeedpldi2bb0in -> evalspeedpldi20 : [], cost: 1 5.53/2.56 5.53/2.56 2: evalspeedpldi20 -> evalspeedpldi21 : [], cost: 1 5.53/2.56 5.53/2.56 3: evalspeedpldi21 -> evalspeedpldi22 : [], cost: 1 5.53/2.56 5.53/2.56 4: evalspeedpldi22 -> evalspeedpldi2bb1in : C'=A, D'=0, [ A>=0 && B>=1 ], cost: 1 5.53/2.56 5.53/2.56 5: evalspeedpldi22 -> evalspeedpldi2bb4in : [ 0>=1+A ], cost: 1 5.53/2.56 5.53/2.56 6: evalspeedpldi22 -> evalspeedpldi2bb4in : [ 0>=B ], cost: 1 5.53/2.56 5.53/2.56 7: evalspeedpldi2bb1in -> evalspeedpldi2bb2in : [ C>=1 ], cost: 1 5.53/2.56 5.53/2.56 8: evalspeedpldi2bb1in -> evalspeedpldi2bb4in : [ 0>=C ], cost: 1 5.53/2.56 5.53/2.56 9: evalspeedpldi2bb2in -> evalspeedpldi2bb3in : [ B>=1+D ], cost: 1 5.53/2.56 5.53/2.56 10: evalspeedpldi2bb2in -> evalspeedpldi2bb1in : D'=0, [ D>=B ], cost: 1 5.53/2.56 5.53/2.56 11: evalspeedpldi2bb3in -> evalspeedpldi2bb1in : C'=-1+C, D'=1+D, [], cost: 1 5.53/2.56 5.53/2.56 12: evalspeedpldi2bb4in -> evalspeedpldi2stop : [], cost: 1 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Removed unreachable and leaf rules: 5.53/2.56 5.53/2.56 Start location: evalspeedpldi2start 5.53/2.56 5.53/2.56 0: evalspeedpldi2start -> evalspeedpldi2bb0in : [], cost: 1 5.53/2.56 5.53/2.56 1: evalspeedpldi2bb0in -> evalspeedpldi20 : [], cost: 1 5.53/2.56 5.53/2.56 2: evalspeedpldi20 -> evalspeedpldi21 : [], cost: 1 5.53/2.56 5.53/2.56 3: evalspeedpldi21 -> evalspeedpldi22 : [], cost: 1 5.53/2.56 5.53/2.56 4: evalspeedpldi22 -> evalspeedpldi2bb1in : C'=A, D'=0, [ A>=0 && B>=1 ], cost: 1 5.53/2.56 5.53/2.56 7: evalspeedpldi2bb1in -> evalspeedpldi2bb2in : [ C>=1 ], cost: 1 5.53/2.56 5.53/2.56 9: evalspeedpldi2bb2in -> evalspeedpldi2bb3in : [ B>=1+D ], cost: 1 5.53/2.56 5.53/2.56 10: evalspeedpldi2bb2in -> evalspeedpldi2bb1in : D'=0, [ D>=B ], cost: 1 5.53/2.56 5.53/2.56 11: evalspeedpldi2bb3in -> evalspeedpldi2bb1in : C'=-1+C, D'=1+D, [], cost: 1 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 ### Simplification by acceleration and chaining ### 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Eliminated locations (on linear paths): 5.53/2.56 5.53/2.56 Start location: evalspeedpldi2start 5.53/2.56 5.53/2.56 16: evalspeedpldi2start -> evalspeedpldi2bb1in : C'=A, D'=0, [ A>=0 && B>=1 ], cost: 5 5.53/2.56 5.53/2.56 7: evalspeedpldi2bb1in -> evalspeedpldi2bb2in : [ C>=1 ], cost: 1 5.53/2.56 5.53/2.56 10: evalspeedpldi2bb2in -> evalspeedpldi2bb1in : D'=0, [ D>=B ], cost: 1 5.53/2.56 5.53/2.56 17: evalspeedpldi2bb2in -> evalspeedpldi2bb1in : C'=-1+C, D'=1+D, [ B>=1+D ], cost: 2 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Eliminated locations (on tree-shaped paths): 5.53/2.56 5.53/2.56 Start location: evalspeedpldi2start 5.53/2.56 5.53/2.56 16: evalspeedpldi2start -> evalspeedpldi2bb1in : C'=A, D'=0, [ A>=0 && B>=1 ], cost: 5 5.53/2.56 5.53/2.56 18: evalspeedpldi2bb1in -> evalspeedpldi2bb1in : D'=0, [ C>=1 && D>=B ], cost: 2 5.53/2.56 5.53/2.56 19: evalspeedpldi2bb1in -> evalspeedpldi2bb1in : C'=-1+C, D'=1+D, [ C>=1 && B>=1+D ], cost: 3 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Accelerating simple loops of location 5. 5.53/2.56 5.53/2.56 Accelerating the following rules: 5.53/2.56 5.53/2.56 18: evalspeedpldi2bb1in -> evalspeedpldi2bb1in : D'=0, [ C>=1 && D>=B ], cost: 2 5.53/2.56 5.53/2.56 19: evalspeedpldi2bb1in -> evalspeedpldi2bb1in : C'=-1+C, D'=1+D, [ C>=1 && B>=1+D ], cost: 3 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Accelerated rule 18 with NONTERM (after strengthening guard), yielding the new rule 20. 5.53/2.56 5.53/2.56 Accelerated rule 19 with backward acceleration, yielding the new rule 21. 5.53/2.56 5.53/2.56 Accelerated rule 19 with backward acceleration, yielding the new rule 22. 5.53/2.56 5.53/2.56 Removing the simple loops: 19. 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Accelerated all simple loops using metering functions (where possible): 5.53/2.56 5.53/2.56 Start location: evalspeedpldi2start 5.53/2.56 5.53/2.56 16: evalspeedpldi2start -> evalspeedpldi2bb1in : C'=A, D'=0, [ A>=0 && B>=1 ], cost: 5 5.53/2.56 5.53/2.56 18: evalspeedpldi2bb1in -> evalspeedpldi2bb1in : D'=0, [ C>=1 && D>=B ], cost: 2 5.53/2.56 5.53/2.56 20: evalspeedpldi2bb1in -> [10] : [ C>=1 && D>=B && 0>=B ], cost: INF 5.53/2.56 5.53/2.56 21: evalspeedpldi2bb1in -> evalspeedpldi2bb1in : C'=0, D'=C+D, [ C>=1 && B>=1+D && B>=C+D ], cost: 3*C 5.53/2.56 5.53/2.56 22: evalspeedpldi2bb1in -> evalspeedpldi2bb1in : C'=C+D-B, D'=B, [ C>=1 && B>=1+D && 1+C+D-B>=1 ], cost: -3*D+3*B 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Chained accelerated rules (with incoming rules): 5.53/2.56 5.53/2.56 Start location: evalspeedpldi2start 5.53/2.56 5.53/2.56 16: evalspeedpldi2start -> evalspeedpldi2bb1in : C'=A, D'=0, [ A>=0 && B>=1 ], cost: 5 5.53/2.56 5.53/2.56 23: evalspeedpldi2start -> evalspeedpldi2bb1in : C'=0, D'=A, [ B>=1 && A>=1 && B>=A ], cost: 5+3*A 5.53/2.56 5.53/2.56 24: evalspeedpldi2start -> evalspeedpldi2bb1in : C'=A-B, D'=B, [ B>=1 && A>=1 && 1+A-B>=1 ], cost: 5+3*B 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Removed unreachable locations (and leaf rules with constant cost): 5.53/2.56 5.53/2.56 Start location: evalspeedpldi2start 5.53/2.56 5.53/2.56 23: evalspeedpldi2start -> evalspeedpldi2bb1in : C'=0, D'=A, [ B>=1 && A>=1 && B>=A ], cost: 5+3*A 5.53/2.56 5.53/2.56 24: evalspeedpldi2start -> evalspeedpldi2bb1in : C'=A-B, D'=B, [ B>=1 && A>=1 && 1+A-B>=1 ], cost: 5+3*B 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 ### Computing asymptotic complexity ### 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Fully simplified ITS problem 5.53/2.56 5.53/2.56 Start location: evalspeedpldi2start 5.53/2.56 5.53/2.56 23: evalspeedpldi2start -> evalspeedpldi2bb1in : C'=0, D'=A, [ B>=1 && A>=1 && B>=A ], cost: 5+3*A 5.53/2.56 5.53/2.56 24: evalspeedpldi2start -> evalspeedpldi2bb1in : C'=A-B, D'=B, [ B>=1 && A>=1 && 1+A-B>=1 ], cost: 5+3*B 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Computing asymptotic complexity for rule 23 5.53/2.56 5.53/2.56 Simplified the guard: 5.53/2.56 5.53/2.56 23: evalspeedpldi2start -> evalspeedpldi2bb1in : C'=0, D'=A, [ A>=1 && B>=A ], cost: 5+3*A 5.53/2.56 5.53/2.56 Solved the limit problem by the following transformations: 5.53/2.56 5.53/2.56 Created initial limit problem: 5.53/2.56 5.53/2.56 5+3*A (+), A (+/+!), 1-A+B (+/+!) [not solved] 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 removing all constraints (solved by SMT) 5.53/2.56 5.53/2.56 resulting limit problem: [solved] 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 applying transformation rule (C) using substitution {A==n,B==2*n} 5.53/2.56 5.53/2.56 resulting limit problem: 5.53/2.56 5.53/2.56 [solved] 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Solution: 5.53/2.56 5.53/2.56 A / n 5.53/2.56 5.53/2.56 B / 2*n 5.53/2.56 5.53/2.56 Resulting cost 5+3*n has complexity: Poly(n^1) 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Found new complexity Poly(n^1). 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 Obtained the following overall complexity (w.r.t. the length of the input n): 5.53/2.56 5.53/2.56 Complexity: Poly(n^1) 5.53/2.56 5.53/2.56 Cpx degree: 1 5.53/2.56 5.53/2.56 Solved cost: 5+3*n 5.53/2.56 5.53/2.56 Rule cost: 5+3*A 5.53/2.56 5.53/2.56 Rule guard: [ A>=1 && B>=A ] 5.53/2.56 5.53/2.56 5.53/2.56 5.53/2.56 WORST_CASE(Omega(n^1),?) 5.53/2.56 5.53/2.56 5.53/2.56 ---------------------------------------- 5.53/2.56 5.53/2.56 (4) 5.53/2.56 BOUNDS(n^1, INF) 5.67/2.60 EOF