5.43/2.52 WORST_CASE(Omega(n^2), O(n^2)) 5.68/2.53 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 5.68/2.53 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 5.68/2.53 5.68/2.53 5.68/2.53 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^2, n^2). 5.68/2.53 5.68/2.53 (0) CpxIntTrs 5.68/2.53 (1) Koat Proof [FINISHED, 320 ms] 5.68/2.53 (2) BOUNDS(1, n^2) 5.68/2.53 (3) Loat Proof [FINISHED, 802 ms] 5.68/2.53 (4) BOUNDS(n^2, INF) 5.68/2.53 5.68/2.53 5.68/2.53 ---------------------------------------- 5.68/2.53 5.68/2.53 (0) 5.68/2.53 Obligation: 5.68/2.53 Complexity Int TRS consisting of the following rules: 5.68/2.53 evalspeedpldi3start(A, B, C, D) -> Com_1(evalspeedpldi3entryin(A, B, C, D)) :|: TRUE 5.68/2.53 evalspeedpldi3entryin(A, B, C, D) -> Com_1(evalspeedpldi3returnin(A, B, C, D)) :|: 0 >= A 5.68/2.53 evalspeedpldi3entryin(A, B, C, D) -> Com_1(evalspeedpldi3returnin(A, B, C, D)) :|: A >= B 5.68/2.53 evalspeedpldi3entryin(A, B, C, D) -> Com_1(evalspeedpldi3bb5in(A, B, 0, 0)) :|: A >= 1 && B >= A + 1 5.68/2.53 evalspeedpldi3bb5in(A, B, C, D) -> Com_1(evalspeedpldi3bb2in(A, B, C, D)) :|: B >= D + 1 5.68/2.53 evalspeedpldi3bb5in(A, B, C, D) -> Com_1(evalspeedpldi3returnin(A, B, C, D)) :|: D >= B 5.68/2.53 evalspeedpldi3bb2in(A, B, C, D) -> Com_1(evalspeedpldi3bb3in(A, B, C, D)) :|: A >= C + 1 5.68/2.53 evalspeedpldi3bb2in(A, B, C, D) -> Com_1(evalspeedpldi3bb4in(A, B, C, D)) :|: C >= A 5.68/2.53 evalspeedpldi3bb3in(A, B, C, D) -> Com_1(evalspeedpldi3bb5in(A, B, C + 1, D)) :|: TRUE 5.68/2.53 evalspeedpldi3bb4in(A, B, C, D) -> Com_1(evalspeedpldi3bb5in(A, B, 0, D + 1)) :|: TRUE 5.68/2.53 evalspeedpldi3returnin(A, B, C, D) -> Com_1(evalspeedpldi3stop(A, B, C, D)) :|: TRUE 5.68/2.53 5.68/2.53 The start-symbols are:[evalspeedpldi3start_4] 5.68/2.53 5.68/2.53 5.68/2.53 ---------------------------------------- 5.68/2.53 5.68/2.53 (1) Koat Proof (FINISHED) 5.68/2.53 YES(?, 6*ar_1 + 6*ar_0 + 12*ar_0*ar_1 + 9) 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Initial complexity problem: 5.68/2.53 5.68/2.53 1: T: 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 >= ar_3 + 1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_2 + 1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_2 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.68/2.53 5.68/2.53 start location: koat_start 5.68/2.53 5.68/2.53 leaf cost: 0 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Repeatedly propagating knowledge in problem 1 produces the following problem: 5.68/2.53 5.68/2.53 2: T: 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 >= ar_3 + 1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_2 + 1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_2 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.68/2.53 5.68/2.53 start location: koat_start 5.68/2.53 5.68/2.53 leaf cost: 0 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 A polynomial rank function with 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3start) = 2 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3entryin) = 2 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3returnin) = 1 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3bb5in) = 2 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3bb2in) = 2 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3bb3in) = 2 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3bb4in) = 2 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3stop) = 0 5.68/2.53 5.68/2.53 Pol(koat_start) = 2 5.68/2.53 5.68/2.53 orients all transitions weakly and the transitions 5.68/2.53 5.68/2.53 evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= ar_1 ] 5.68/2.53 5.68/2.53 strictly and produces the following problem: 5.68/2.53 5.68/2.53 3: T: 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 >= ar_3 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 2, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_2 + 1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_2 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) 5.68/2.53 5.68/2.53 (Comp: 2, Cost: 1) evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.68/2.53 5.68/2.53 start location: koat_start 5.68/2.53 5.68/2.53 leaf cost: 0 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Applied AI with 'oct' on problem 3 to obtain the following invariants: 5.68/2.53 5.68/2.53 For symbol evalspeedpldi3bb2in: X_2 - X_4 - 1 >= 0 /\ X_4 >= 0 /\ X_3 + X_4 >= 0 /\ X_2 + X_4 - 2 >= 0 /\ X_1 + X_4 - 1 >= 0 /\ X_3 >= 0 /\ X_2 + X_3 - 2 >= 0 /\ X_1 + X_3 - 1 >= 0 /\ X_2 - 2 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0 5.68/2.53 5.68/2.53 For symbol evalspeedpldi3bb3in: X_2 - X_4 - 1 >= 0 /\ X_4 >= 0 /\ X_3 + X_4 >= 0 /\ X_2 + X_4 - 2 >= 0 /\ X_1 + X_4 - 1 >= 0 /\ X_2 - X_3 - 2 >= 0 /\ X_1 - X_3 - 1 >= 0 /\ X_3 >= 0 /\ X_2 + X_3 - 2 >= 0 /\ X_1 + X_3 - 1 >= 0 /\ X_2 - 2 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0 5.68/2.53 5.68/2.53 For symbol evalspeedpldi3bb4in: X_2 - X_4 - 1 >= 0 /\ X_4 >= 0 /\ X_3 + X_4 - 1 >= 0 /\ X_2 + X_4 - 2 >= 0 /\ X_1 + X_4 - 1 >= 0 /\ X_3 - 1 >= 0 /\ X_2 + X_3 - 3 >= 0 /\ X_1 + X_3 - 2 >= 0 /\ -X_1 + X_3 >= 0 /\ X_2 - 2 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0 5.68/2.53 5.68/2.53 For symbol evalspeedpldi3bb5in: X_4 >= 0 /\ X_3 + X_4 >= 0 /\ X_2 + X_4 - 2 >= 0 /\ X_1 + X_4 - 1 >= 0 /\ X_3 >= 0 /\ X_2 + X_3 - 2 >= 0 /\ X_1 + X_3 - 1 >= 0 /\ X_2 - 2 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 This yielded the following problem: 5.68/2.53 5.68/2.53 4: T: 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.68/2.53 5.68/2.53 (Comp: 2, Cost: 1) evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ -ar_0 + ar_2 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_1 - ar_2 - 2 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 >= ar_2 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 2, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_3 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_3 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 start location: koat_start 5.68/2.53 5.68/2.53 leaf cost: 0 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 A polynomial rank function with 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3bb5in) = 2*V_2 - 2*V_4 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3bb2in) = 2*V_2 - 2*V_4 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3bb4in) = 2*V_2 - 2*V_4 - 1 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3bb3in) = 2*V_2 - 2*V_4 5.68/2.53 5.68/2.53 and size complexities 5.68/2.53 5.68/2.53 S("evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3))", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3))", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3))", 0-2) = ar_2 5.68/2.53 5.68/2.53 S("evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3))", 0-3) = ar_3 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ]", 0-2) = ar_2 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ]", 0-3) = ar_3 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ]", 0-2) = ar_2 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ]", 0-3) = ar_3 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-2) = 0 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-3) = 0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-2) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-2) = 0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_0 >= ar_2 + 1 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_0 >= ar_2 + 1 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_0 >= ar_2 + 1 ]", 0-2) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_0 >= ar_2 + 1 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 ]", 0-2) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_1 - ar_2 - 2 >= 0 /\\ ar_0 - ar_2 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_1 - ar_2 - 2 >= 0 /\\ ar_0 - ar_2 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_1 - ar_2 - 2 >= 0 /\\ ar_0 - ar_2 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-2) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_1 - ar_2 - 2 >= 0 /\\ ar_0 - ar_2 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 3 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ -ar_0 + ar_2 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 3 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ -ar_0 + ar_2 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 3 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ -ar_0 + ar_2 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-2) = 0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 3 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ -ar_0 + ar_2 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3))", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3))", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3))", 0-2) = ar_2 5.68/2.53 5.68/2.53 S("evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3))", 0-3) = ar_1 + ar_3 5.68/2.53 5.68/2.53 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-2) = ar_2 5.68/2.53 5.68/2.53 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-3) = ar_3 5.68/2.53 5.68/2.53 orients the transitions 5.68/2.53 5.68/2.53 evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_3 + 1 ] 5.68/2.53 5.68/2.53 evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ -ar_0 + ar_2 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_1 - ar_2 - 2 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 ] 5.68/2.53 5.68/2.53 evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 >= ar_2 + 1 ] 5.68/2.53 5.68/2.53 weakly and the transitions 5.68/2.53 5.68/2.53 evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ -ar_0 + ar_2 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 ] 5.68/2.53 5.68/2.53 strictly and produces the following problem: 5.68/2.53 5.68/2.53 5: T: 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.68/2.53 5.68/2.53 (Comp: 2, Cost: 1) evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 (Comp: 2*ar_1, Cost: 1) evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ -ar_0 + ar_2 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_1 - ar_2 - 2 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 (Comp: 2*ar_1, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 >= ar_2 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 2, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_3 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_3 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 start location: koat_start 5.68/2.53 5.68/2.53 leaf cost: 0 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 A polynomial rank function with 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3bb5in) = 2*V_1 - 2*V_3 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3bb2in) = 2*V_1 - 2*V_3 5.68/2.53 5.68/2.53 Pol(evalspeedpldi3bb3in) = 2*V_1 - 2*V_3 - 1 5.68/2.53 5.68/2.53 and size complexities 5.68/2.53 5.68/2.53 S("evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3))", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3))", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3))", 0-2) = ar_2 5.68/2.53 5.68/2.53 S("evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3))", 0-3) = ar_3 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ]", 0-2) = ar_2 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ]", 0-3) = ar_3 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ]", 0-2) = ar_2 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ]", 0-3) = ar_3 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-2) = 0 5.68/2.53 5.68/2.53 S("evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-3) = 0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-2) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_3 + 1 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-2) = 0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_3 >= ar_1 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_0 >= ar_2 + 1 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_0 >= ar_2 + 1 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_0 >= ar_2 + 1 ]", 0-2) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_0 >= ar_2 + 1 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 ]", 0-2) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_1 - ar_2 - 2 >= 0 /\\ ar_0 - ar_2 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_1 - ar_2 - 2 >= 0 /\\ ar_0 - ar_2 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_1 - ar_2 - 2 >= 0 /\\ ar_0 - ar_2 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-2) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_1 - ar_2 - 2 >= 0 /\\ ar_0 - ar_2 - 1 >= 0 /\\ ar_2 >= 0 /\\ ar_1 + ar_2 - 2 >= 0 /\\ ar_0 + ar_2 - 1 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 3 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ -ar_0 + ar_2 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 3 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ -ar_0 + ar_2 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 3 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ -ar_0 + ar_2 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-2) = 0 5.68/2.53 5.68/2.53 S("evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\\ ar_3 >= 0 /\\ ar_2 + ar_3 - 1 >= 0 /\\ ar_1 + ar_3 - 2 >= 0 /\\ ar_0 + ar_3 - 1 >= 0 /\\ ar_2 - 1 >= 0 /\\ ar_1 + ar_2 - 3 >= 0 /\\ ar_0 + ar_2 - 2 >= 0 /\\ -ar_0 + ar_2 >= 0 /\\ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 ]", 0-3) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3))", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3))", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3))", 0-2) = ar_2 5.68/2.53 5.68/2.53 S("evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3))", 0-3) = ar_1 + ar_3 5.68/2.53 5.68/2.53 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-0) = ar_0 5.68/2.53 5.68/2.53 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-1) = ar_1 5.68/2.53 5.68/2.53 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-2) = ar_2 5.68/2.53 5.68/2.53 S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-3) = ar_3 5.68/2.53 5.68/2.53 orients the transitions 5.68/2.53 5.68/2.53 evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_3 + 1 ] 5.68/2.53 5.68/2.53 evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_1 - ar_2 - 2 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 >= ar_2 + 1 ] 5.68/2.53 5.68/2.53 weakly and the transitions 5.68/2.53 5.68/2.53 evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_1 - ar_2 - 2 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 >= ar_2 + 1 ] 5.68/2.53 5.68/2.53 strictly and produces the following problem: 5.68/2.53 5.68/2.53 6: T: 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.68/2.53 5.68/2.53 (Comp: 2, Cost: 1) evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 (Comp: 2*ar_1, Cost: 1) evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ -ar_0 + ar_2 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 (Comp: 2*ar_0 + 4*ar_0*ar_1, Cost: 1) evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_1 - ar_2 - 2 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 (Comp: 2*ar_1, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: 2*ar_0 + 4*ar_0*ar_1, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 >= ar_2 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 2, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_3 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: ?, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_3 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 start location: koat_start 5.68/2.53 5.68/2.53 leaf cost: 0 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Repeatedly propagating knowledge in problem 6 produces the following problem: 5.68/2.53 5.68/2.53 7: T: 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ] 5.68/2.53 5.68/2.53 (Comp: 2, Cost: 1) evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3stop(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 (Comp: 2*ar_1, Cost: 1) evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, ar_3 + 1)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ -ar_0 + ar_2 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 (Comp: 2*ar_0 + 4*ar_0*ar_1, Cost: 1) evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, ar_2 + 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_1 - ar_2 - 2 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 ] 5.68/2.53 5.68/2.53 (Comp: 2*ar_1, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb4in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: 2*ar_0 + 4*ar_0*ar_1, Cost: 1) evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb3in(ar_0, ar_1, ar_2, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 >= ar_2 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 2, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_3 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: 2*ar_0 + 4*ar_0*ar_1 + 2*ar_1 + 1, Cost: 1) evalspeedpldi3bb5in(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb2in(ar_0, ar_1, ar_2, ar_3)) [ ar_3 >= 0 /\ ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_3 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3bb5in(ar_0, ar_1, 0, 0)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ ar_0 >= ar_1 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3returnin(ar_0, ar_1, ar_2, ar_3)) [ 0 >= ar_0 ] 5.68/2.53 5.68/2.53 (Comp: 1, Cost: 1) evalspeedpldi3start(ar_0, ar_1, ar_2, ar_3) -> Com_1(evalspeedpldi3entryin(ar_0, ar_1, ar_2, ar_3)) 5.68/2.53 5.68/2.53 start location: koat_start 5.68/2.53 5.68/2.53 leaf cost: 0 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Complexity upper bound 6*ar_1 + 6*ar_0 + 12*ar_0*ar_1 + 9 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Time: 0.368 sec (SMT: 0.287 sec) 5.68/2.53 5.68/2.53 5.68/2.53 ---------------------------------------- 5.68/2.53 5.68/2.53 (2) 5.68/2.53 BOUNDS(1, n^2) 5.68/2.53 5.68/2.53 ---------------------------------------- 5.68/2.53 5.68/2.53 (3) Loat Proof (FINISHED) 5.68/2.53 5.68/2.53 5.68/2.53 ### Pre-processing the ITS problem ### 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Initial linear ITS problem 5.68/2.53 5.68/2.53 Start location: evalspeedpldi3start 5.68/2.53 5.68/2.53 0: evalspeedpldi3start -> evalspeedpldi3entryin : [], cost: 1 5.68/2.53 5.68/2.53 1: evalspeedpldi3entryin -> evalspeedpldi3returnin : [ 0>=A ], cost: 1 5.68/2.53 5.68/2.53 2: evalspeedpldi3entryin -> evalspeedpldi3returnin : [ A>=B ], cost: 1 5.68/2.53 5.68/2.53 3: evalspeedpldi3entryin -> evalspeedpldi3bb5in : C'=0, D'=0, [ A>=1 && B>=1+A ], cost: 1 5.68/2.53 5.68/2.53 4: evalspeedpldi3bb5in -> evalspeedpldi3bb2in : [ B>=1+D ], cost: 1 5.68/2.53 5.68/2.53 5: evalspeedpldi3bb5in -> evalspeedpldi3returnin : [ D>=B ], cost: 1 5.68/2.53 5.68/2.53 6: evalspeedpldi3bb2in -> evalspeedpldi3bb3in : [ A>=1+C ], cost: 1 5.68/2.53 5.68/2.53 7: evalspeedpldi3bb2in -> evalspeedpldi3bb4in : [ C>=A ], cost: 1 5.68/2.53 5.68/2.53 8: evalspeedpldi3bb3in -> evalspeedpldi3bb5in : C'=1+C, [], cost: 1 5.68/2.53 5.68/2.53 9: evalspeedpldi3bb4in -> evalspeedpldi3bb5in : C'=0, D'=1+D, [], cost: 1 5.68/2.53 5.68/2.53 10: evalspeedpldi3returnin -> evalspeedpldi3stop : [], cost: 1 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Removed unreachable and leaf rules: 5.68/2.53 5.68/2.53 Start location: evalspeedpldi3start 5.68/2.53 5.68/2.53 0: evalspeedpldi3start -> evalspeedpldi3entryin : [], cost: 1 5.68/2.53 5.68/2.53 3: evalspeedpldi3entryin -> evalspeedpldi3bb5in : C'=0, D'=0, [ A>=1 && B>=1+A ], cost: 1 5.68/2.53 5.68/2.53 4: evalspeedpldi3bb5in -> evalspeedpldi3bb2in : [ B>=1+D ], cost: 1 5.68/2.53 5.68/2.53 6: evalspeedpldi3bb2in -> evalspeedpldi3bb3in : [ A>=1+C ], cost: 1 5.68/2.53 5.68/2.53 7: evalspeedpldi3bb2in -> evalspeedpldi3bb4in : [ C>=A ], cost: 1 5.68/2.53 5.68/2.53 8: evalspeedpldi3bb3in -> evalspeedpldi3bb5in : C'=1+C, [], cost: 1 5.68/2.53 5.68/2.53 9: evalspeedpldi3bb4in -> evalspeedpldi3bb5in : C'=0, D'=1+D, [], cost: 1 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 ### Simplification by acceleration and chaining ### 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Eliminated locations (on linear paths): 5.68/2.53 5.68/2.53 Start location: evalspeedpldi3start 5.68/2.53 5.68/2.53 11: evalspeedpldi3start -> evalspeedpldi3bb5in : C'=0, D'=0, [ A>=1 && B>=1+A ], cost: 2 5.68/2.53 5.68/2.53 4: evalspeedpldi3bb5in -> evalspeedpldi3bb2in : [ B>=1+D ], cost: 1 5.68/2.53 5.68/2.53 12: evalspeedpldi3bb2in -> evalspeedpldi3bb5in : C'=1+C, [ A>=1+C ], cost: 2 5.68/2.53 5.68/2.53 13: evalspeedpldi3bb2in -> evalspeedpldi3bb5in : C'=0, D'=1+D, [ C>=A ], cost: 2 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Eliminated locations (on tree-shaped paths): 5.68/2.53 5.68/2.53 Start location: evalspeedpldi3start 5.68/2.53 5.68/2.53 11: evalspeedpldi3start -> evalspeedpldi3bb5in : C'=0, D'=0, [ A>=1 && B>=1+A ], cost: 2 5.68/2.53 5.68/2.53 14: evalspeedpldi3bb5in -> evalspeedpldi3bb5in : C'=1+C, [ B>=1+D && A>=1+C ], cost: 3 5.68/2.53 5.68/2.53 15: evalspeedpldi3bb5in -> evalspeedpldi3bb5in : C'=0, D'=1+D, [ B>=1+D && C>=A ], cost: 3 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Accelerating simple loops of location 2. 5.68/2.53 5.68/2.53 Accelerating the following rules: 5.68/2.53 5.68/2.53 14: evalspeedpldi3bb5in -> evalspeedpldi3bb5in : C'=1+C, [ B>=1+D && A>=1+C ], cost: 3 5.68/2.53 5.68/2.53 15: evalspeedpldi3bb5in -> evalspeedpldi3bb5in : C'=0, D'=1+D, [ B>=1+D && C>=A ], cost: 3 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Accelerated rule 14 with metering function -C+A, yielding the new rule 16. 5.68/2.53 5.68/2.53 Accelerated rule 15 with metering function -D+B (after strengthening guard), yielding the new rule 17. 5.68/2.53 5.68/2.53 Nested simple loops 15 (outer loop) and 16 (inner loop) with metering function -1-D+B, resulting in the new rules: 18, 19. 5.68/2.53 5.68/2.53 Removing the simple loops: 14 15. 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Accelerated all simple loops using metering functions (where possible): 5.68/2.53 5.68/2.53 Start location: evalspeedpldi3start 5.68/2.53 5.68/2.53 11: evalspeedpldi3start -> evalspeedpldi3bb5in : C'=0, D'=0, [ A>=1 && B>=1+A ], cost: 2 5.68/2.53 5.68/2.53 16: evalspeedpldi3bb5in -> evalspeedpldi3bb5in : C'=A, [ B>=1+D && A>=1+C ], cost: -3*C+3*A 5.68/2.53 5.68/2.53 17: evalspeedpldi3bb5in -> evalspeedpldi3bb5in : C'=0, D'=B, [ B>=1+D && C>=A && 0>=A ], cost: -3*D+3*B 5.68/2.53 5.68/2.53 18: evalspeedpldi3bb5in -> evalspeedpldi3bb5in : C'=A, D'=-1+B, [ C>=A && B>=2+D && A>=1 ], cost: -3-3*(1+D-B)*A-3*D+3*B 5.68/2.53 5.68/2.53 19: evalspeedpldi3bb5in -> evalspeedpldi3bb5in : C'=A, D'=-1+B, [ A>=1+C && B>=2+D && A>=1 ], cost: -3-3*C-3*(1+D-B)*A-3*D+3*A+3*B 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Chained accelerated rules (with incoming rules): 5.68/2.53 5.68/2.53 Start location: evalspeedpldi3start 5.68/2.53 5.68/2.53 11: evalspeedpldi3start -> evalspeedpldi3bb5in : C'=0, D'=0, [ A>=1 && B>=1+A ], cost: 2 5.68/2.53 5.68/2.53 20: evalspeedpldi3start -> evalspeedpldi3bb5in : C'=A, D'=0, [ A>=1 && B>=1+A && B>=1 ], cost: 2+3*A 5.68/2.53 5.68/2.53 21: evalspeedpldi3start -> evalspeedpldi3bb5in : C'=A, D'=-1+B, [ A>=1 && B>=1+A && B>=2 ], cost: -1+3*A+3*(-1+B)*A+3*B 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Removed unreachable locations (and leaf rules with constant cost): 5.68/2.53 5.68/2.53 Start location: evalspeedpldi3start 5.68/2.53 5.68/2.53 20: evalspeedpldi3start -> evalspeedpldi3bb5in : C'=A, D'=0, [ A>=1 && B>=1+A && B>=1 ], cost: 2+3*A 5.68/2.53 5.68/2.53 21: evalspeedpldi3start -> evalspeedpldi3bb5in : C'=A, D'=-1+B, [ A>=1 && B>=1+A && B>=2 ], cost: -1+3*A+3*(-1+B)*A+3*B 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 ### Computing asymptotic complexity ### 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Fully simplified ITS problem 5.68/2.53 5.68/2.53 Start location: evalspeedpldi3start 5.68/2.53 5.68/2.53 20: evalspeedpldi3start -> evalspeedpldi3bb5in : C'=A, D'=0, [ A>=1 && B>=1+A && B>=1 ], cost: 2+3*A 5.68/2.53 5.68/2.53 21: evalspeedpldi3start -> evalspeedpldi3bb5in : C'=A, D'=-1+B, [ A>=1 && B>=1+A && B>=2 ], cost: -1+3*A+3*(-1+B)*A+3*B 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Computing asymptotic complexity for rule 20 5.68/2.53 5.68/2.53 Solved the limit problem by the following transformations: 5.68/2.53 5.68/2.53 Created initial limit problem: 5.68/2.53 5.68/2.53 A (+/+!), -A+B (+/+!), 2+3*A (+) [not solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 removing all constraints (solved by SMT) 5.68/2.53 5.68/2.53 resulting limit problem: [solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 applying transformation rule (C) using substitution {A==n,B==1+n} 5.68/2.53 5.68/2.53 resulting limit problem: 5.68/2.53 5.68/2.53 [solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Solution: 5.68/2.53 5.68/2.53 A / n 5.68/2.53 5.68/2.53 B / 1+n 5.68/2.53 5.68/2.53 Resulting cost 2+3*n has complexity: Poly(n^1) 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Found new complexity Poly(n^1). 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Computing asymptotic complexity for rule 21 5.68/2.53 5.68/2.53 Solved the limit problem by the following transformations: 5.68/2.53 5.68/2.53 Created initial limit problem: 5.68/2.53 5.68/2.53 A (+/+!), -A+B (+/+!), -1+3*A*B+3*B (+) [not solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 applying transformation rule (C) using substitution {A==1} 5.68/2.53 5.68/2.53 resulting limit problem: 5.68/2.53 5.68/2.53 1 (+/+!), -1+6*B (+), -1+B (+/+!) [not solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 applying transformation rule (C) using substitution {B==1+A} 5.68/2.53 5.68/2.53 resulting limit problem: 5.68/2.53 5.68/2.53 1 (+/+!), A (+/+!), 5+6*A (+) [not solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 applying transformation rule (B), deleting 1 (+/+!) 5.68/2.53 5.68/2.53 resulting limit problem: 5.68/2.53 5.68/2.53 A (+/+!), 5+6*A (+) [not solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 removing all constraints (solved by SMT) 5.68/2.53 5.68/2.53 resulting limit problem: [solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 applying transformation rule (C) using substitution {A==n} 5.68/2.53 5.68/2.53 resulting limit problem: 5.68/2.53 5.68/2.53 [solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Solved the limit problem by the following transformations: 5.68/2.53 5.68/2.53 Created initial limit problem: 5.68/2.53 5.68/2.53 A (+/+!), -A+B (+/+!), -1+3*A*B+3*B (+) [not solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 removing all constraints (solved by SMT) 5.68/2.53 5.68/2.53 resulting limit problem: [solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 applying transformation rule (C) using substitution {A==1+n,B==2+n} 5.68/2.53 5.68/2.53 resulting limit problem: 5.68/2.53 5.68/2.53 [solved] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Solution: 5.68/2.53 5.68/2.53 A / 1+n 5.68/2.53 5.68/2.53 B / 2+n 5.68/2.53 5.68/2.53 Resulting cost 11+3*n^2+12*n has complexity: Poly(n^2) 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Found new complexity Poly(n^2). 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 Obtained the following overall complexity (w.r.t. the length of the input n): 5.68/2.53 5.68/2.53 Complexity: Poly(n^2) 5.68/2.53 5.68/2.53 Cpx degree: 2 5.68/2.53 5.68/2.53 Solved cost: 11+3*n^2+12*n 5.68/2.53 5.68/2.53 Rule cost: -1+3*A+3*(-1+B)*A+3*B 5.68/2.53 5.68/2.53 Rule guard: [ A>=1 && B>=1+A ] 5.68/2.53 5.68/2.53 5.68/2.53 5.68/2.53 WORST_CASE(Omega(n^2),?) 5.68/2.53 5.68/2.53 5.68/2.53 ---------------------------------------- 5.68/2.53 5.68/2.53 (4) 5.68/2.53 BOUNDS(n^2, INF) 5.68/2.57 EOF