4.93/2.29 WORST_CASE(?, O(n^1)) 4.93/2.30 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 4.93/2.30 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.93/2.30 4.93/2.30 4.93/2.30 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(1, max(5, 1 + 2 * Arg_1) * max(4, 4 * Arg_0) + max(5, 1 + 2 * Arg_1) * max(5, 5 * Arg_0) + max(5, 1 + 2 * Arg_1) * max(3, 3 * Arg_0) + nat(Arg_1) + max(11, 7 + 2 * Arg_1)). 4.93/2.30 4.93/2.30 (0) CpxIntTrs 4.93/2.30 (1) Koat Proof [FINISHED, 202 ms] 4.93/2.30 (2) BOUNDS(1, n^1) 4.93/2.30 (3) Loat Proof [FINISHED, 428 ms] 4.93/2.30 (4) BOUNDS(1, INF) 4.93/2.30 (5) Koat2 Proof [FINISHED, 647 ms] 4.93/2.30 (6) BOUNDS(1, max(5, 1 + 2 * Arg_1) * max(4, 4 * Arg_0) + max(5, 1 + 2 * Arg_1) * max(5, 5 * Arg_0) + max(5, 1 + 2 * Arg_1) * max(3, 3 * Arg_0) + nat(Arg_1) + max(11, 7 + 2 * Arg_1)) 4.93/2.30 4.93/2.30 4.93/2.30 ---------------------------------------- 4.93/2.30 4.93/2.30 (0) 4.93/2.30 Obligation: 4.93/2.30 Complexity Int TRS consisting of the following rules: 4.93/2.30 evalspeedpldi4start(A, B) -> Com_1(evalspeedpldi4entryin(A, B)) :|: TRUE 4.93/2.30 evalspeedpldi4entryin(A, B) -> Com_1(evalspeedpldi4returnin(A, B)) :|: 0 >= A 4.93/2.30 evalspeedpldi4entryin(A, B) -> Com_1(evalspeedpldi4returnin(A, B)) :|: A >= B 4.93/2.30 evalspeedpldi4entryin(A, B) -> Com_1(evalspeedpldi4bb5in(A, B)) :|: A >= 1 && B >= A + 1 4.93/2.30 evalspeedpldi4bb5in(A, B) -> Com_1(evalspeedpldi4bb2in(A, B)) :|: B >= 1 4.93/2.30 evalspeedpldi4bb5in(A, B) -> Com_1(evalspeedpldi4returnin(A, B)) :|: 0 >= B 4.93/2.30 evalspeedpldi4bb2in(A, B) -> Com_1(evalspeedpldi4bb3in(A, B)) :|: A >= B + 1 4.93/2.30 evalspeedpldi4bb2in(A, B) -> Com_1(evalspeedpldi4bb4in(A, B)) :|: B >= A 4.93/2.30 evalspeedpldi4bb3in(A, B) -> Com_1(evalspeedpldi4bb5in(A, B - 1)) :|: TRUE 4.93/2.30 evalspeedpldi4bb4in(A, B) -> Com_1(evalspeedpldi4bb5in(A, B - A)) :|: TRUE 4.93/2.30 evalspeedpldi4returnin(A, B) -> Com_1(evalspeedpldi4stop(A, B)) :|: TRUE 4.93/2.30 4.93/2.30 The start-symbols are:[evalspeedpldi4start_2] 4.93/2.30 4.93/2.30 4.93/2.30 ---------------------------------------- 4.93/2.30 4.93/2.30 (1) Koat Proof (FINISHED) 4.93/2.30 YES(?, 15*ar_0 + 15*ar_1 + 8) 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Initial complexity problem: 4.93/2.30 4.93/2.30 1: T: 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4start(ar_0, ar_1) -> Com_1(evalspeedpldi4entryin(ar_0, ar_1)) 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ 0 >= ar_0 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ ar_0 >= ar_1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb2in(ar_0, ar_1)) [ ar_1 >= 1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ 0 >= ar_1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb3in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb4in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb3in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - 1)) 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb4in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - ar_0)) 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4returnin(ar_0, ar_1) -> Com_1(evalspeedpldi4stop(ar_0, ar_1)) 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalspeedpldi4start(ar_0, ar_1)) [ 0 <= 0 ] 4.93/2.30 4.93/2.30 start location: koat_start 4.93/2.30 4.93/2.30 leaf cost: 0 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Repeatedly propagating knowledge in problem 1 produces the following problem: 4.93/2.30 4.93/2.30 2: T: 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4start(ar_0, ar_1) -> Com_1(evalspeedpldi4entryin(ar_0, ar_1)) 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ 0 >= ar_0 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ ar_0 >= ar_1 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb2in(ar_0, ar_1)) [ ar_1 >= 1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ 0 >= ar_1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb3in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb4in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb3in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - 1)) 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb4in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - ar_0)) 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4returnin(ar_0, ar_1) -> Com_1(evalspeedpldi4stop(ar_0, ar_1)) 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalspeedpldi4start(ar_0, ar_1)) [ 0 <= 0 ] 4.93/2.30 4.93/2.30 start location: koat_start 4.93/2.30 4.93/2.30 leaf cost: 0 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 A polynomial rank function with 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4start) = 2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4entryin) = 2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4returnin) = 1 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4bb5in) = 2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4bb2in) = 2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4bb3in) = 2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4bb4in) = 2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4stop) = 0 4.93/2.30 4.93/2.30 Pol(koat_start) = 2 4.93/2.30 4.93/2.30 orients all transitions weakly and the transitions 4.93/2.30 4.93/2.30 evalspeedpldi4returnin(ar_0, ar_1) -> Com_1(evalspeedpldi4stop(ar_0, ar_1)) 4.93/2.30 4.93/2.30 evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ 0 >= ar_1 ] 4.93/2.30 4.93/2.30 strictly and produces the following problem: 4.93/2.30 4.93/2.30 3: T: 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4start(ar_0, ar_1) -> Com_1(evalspeedpldi4entryin(ar_0, ar_1)) 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ 0 >= ar_0 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ ar_0 >= ar_1 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb2in(ar_0, ar_1)) [ ar_1 >= 1 ] 4.93/2.30 4.93/2.30 (Comp: 2, Cost: 1) evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ 0 >= ar_1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb3in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb4in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb3in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - 1)) 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb4in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - ar_0)) 4.93/2.30 4.93/2.30 (Comp: 2, Cost: 1) evalspeedpldi4returnin(ar_0, ar_1) -> Com_1(evalspeedpldi4stop(ar_0, ar_1)) 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalspeedpldi4start(ar_0, ar_1)) [ 0 <= 0 ] 4.93/2.30 4.93/2.30 start location: koat_start 4.93/2.30 4.93/2.30 leaf cost: 0 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Applied AI with 'oct' on problem 3 to obtain the following invariants: 4.93/2.30 4.93/2.30 For symbol evalspeedpldi4bb2in: X_2 - 1 >= 0 /\ X_1 + X_2 - 2 >= 0 /\ X_1 - 1 >= 0 4.93/2.30 4.93/2.30 For symbol evalspeedpldi4bb3in: X_1 - X_2 - 1 >= 0 /\ X_2 - 1 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ X_1 - 2 >= 0 4.93/2.30 4.93/2.30 For symbol evalspeedpldi4bb4in: X_2 - 1 >= 0 /\ X_1 + X_2 - 2 >= 0 /\ -X_1 + X_2 >= 0 /\ X_1 - 1 >= 0 4.93/2.30 4.93/2.30 For symbol evalspeedpldi4bb5in: X_1 - 1 >= 0 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 This yielded the following problem: 4.93/2.30 4.93/2.30 4: T: 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalspeedpldi4start(ar_0, ar_1)) [ 0 <= 0 ] 4.93/2.30 4.93/2.30 (Comp: 2, Cost: 1) evalspeedpldi4returnin(ar_0, ar_1) -> Com_1(evalspeedpldi4stop(ar_0, ar_1)) 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb4in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - ar_0)) [ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 >= 0 /\ ar_0 - 1 >= 0 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb3in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - 1)) [ ar_0 - ar_1 - 1 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ ar_0 - 2 >= 0 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb4in(ar_0, ar_1)) [ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_0 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb3in(ar_0, ar_1)) [ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 >= ar_1 + 1 ] 4.93/2.30 4.93/2.30 (Comp: 2, Cost: 1) evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ ar_0 - 1 >= 0 /\ 0 >= ar_1 ] 4.93/2.30 4.93/2.30 (Comp: ?, Cost: 1) evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb2in(ar_0, ar_1)) [ ar_0 - 1 >= 0 /\ ar_1 >= 1 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ ar_0 >= ar_1 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ 0 >= ar_0 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4start(ar_0, ar_1) -> Com_1(evalspeedpldi4entryin(ar_0, ar_1)) 4.93/2.30 4.93/2.30 start location: koat_start 4.93/2.30 4.93/2.30 leaf cost: 0 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 A polynomial rank function with 4.93/2.30 4.93/2.30 Pol(koat_start) = 3*V_1 + 3*V_2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4start) = 3*V_1 + 3*V_2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4returnin) = 3*V_1 + 3*V_2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4stop) = 3*V_1 + 3*V_2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4bb4in) = 3*V_2 + 1 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4bb5in) = 3*V_1 + 3*V_2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4bb3in) = 3*V_1 + 3*V_2 - 2 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4bb2in) = 3*V_1 + 3*V_2 - 1 4.93/2.30 4.93/2.30 Pol(evalspeedpldi4entryin) = 3*V_1 + 3*V_2 4.93/2.30 4.93/2.30 orients all transitions weakly and the transitions 4.93/2.30 4.93/2.30 evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb2in(ar_0, ar_1)) [ ar_0 - 1 >= 0 /\ ar_1 >= 1 ] 4.93/2.30 4.93/2.30 evalspeedpldi4bb4in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - ar_0)) [ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 >= 0 /\ ar_0 - 1 >= 0 ] 4.93/2.30 4.93/2.30 evalspeedpldi4bb3in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - 1)) [ ar_0 - ar_1 - 1 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ ar_0 - 2 >= 0 ] 4.93/2.30 4.93/2.30 evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb4in(ar_0, ar_1)) [ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_0 ] 4.93/2.30 4.93/2.30 evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb3in(ar_0, ar_1)) [ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 >= ar_1 + 1 ] 4.93/2.30 4.93/2.30 strictly and produces the following problem: 4.93/2.30 4.93/2.30 5: T: 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalspeedpldi4start(ar_0, ar_1)) [ 0 <= 0 ] 4.93/2.30 4.93/2.30 (Comp: 2, Cost: 1) evalspeedpldi4returnin(ar_0, ar_1) -> Com_1(evalspeedpldi4stop(ar_0, ar_1)) 4.93/2.30 4.93/2.30 (Comp: 3*ar_0 + 3*ar_1, Cost: 1) evalspeedpldi4bb4in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - ar_0)) [ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 >= 0 /\ ar_0 - 1 >= 0 ] 4.93/2.30 4.93/2.30 (Comp: 3*ar_0 + 3*ar_1, Cost: 1) evalspeedpldi4bb3in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1 - 1)) [ ar_0 - ar_1 - 1 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ ar_0 - 2 >= 0 ] 4.93/2.30 4.93/2.30 (Comp: 3*ar_0 + 3*ar_1, Cost: 1) evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb4in(ar_0, ar_1)) [ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_0 ] 4.93/2.30 4.93/2.30 (Comp: 3*ar_0 + 3*ar_1, Cost: 1) evalspeedpldi4bb2in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb3in(ar_0, ar_1)) [ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 >= ar_1 + 1 ] 4.93/2.30 4.93/2.30 (Comp: 2, Cost: 1) evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ ar_0 - 1 >= 0 /\ 0 >= ar_1 ] 4.93/2.30 4.93/2.30 (Comp: 3*ar_0 + 3*ar_1, Cost: 1) evalspeedpldi4bb5in(ar_0, ar_1) -> Com_1(evalspeedpldi4bb2in(ar_0, ar_1)) [ ar_0 - 1 >= 0 /\ ar_1 >= 1 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4bb5in(ar_0, ar_1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ ar_0 >= ar_1 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4entryin(ar_0, ar_1) -> Com_1(evalspeedpldi4returnin(ar_0, ar_1)) [ 0 >= ar_0 ] 4.93/2.30 4.93/2.30 (Comp: 1, Cost: 1) evalspeedpldi4start(ar_0, ar_1) -> Com_1(evalspeedpldi4entryin(ar_0, ar_1)) 4.93/2.30 4.93/2.30 start location: koat_start 4.93/2.30 4.93/2.30 leaf cost: 0 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Complexity upper bound 15*ar_0 + 15*ar_1 + 8 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Time: 0.216 sec (SMT: 0.198 sec) 4.93/2.30 4.93/2.30 4.93/2.30 ---------------------------------------- 4.93/2.30 4.93/2.30 (2) 4.93/2.30 BOUNDS(1, n^1) 4.93/2.30 4.93/2.30 ---------------------------------------- 4.93/2.30 4.93/2.30 (3) Loat Proof (FINISHED) 4.93/2.30 4.93/2.30 4.93/2.30 ### Pre-processing the ITS problem ### 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Initial linear ITS problem 4.93/2.30 4.93/2.30 Start location: evalspeedpldi4start 4.93/2.30 4.93/2.30 0: evalspeedpldi4start -> evalspeedpldi4entryin : [], cost: 1 4.93/2.30 4.93/2.30 1: evalspeedpldi4entryin -> evalspeedpldi4returnin : [ 0>=A ], cost: 1 4.93/2.30 4.93/2.30 2: evalspeedpldi4entryin -> evalspeedpldi4returnin : [ A>=B ], cost: 1 4.93/2.30 4.93/2.30 3: evalspeedpldi4entryin -> evalspeedpldi4bb5in : [ A>=1 && B>=1+A ], cost: 1 4.93/2.30 4.93/2.30 4: evalspeedpldi4bb5in -> evalspeedpldi4bb2in : [ B>=1 ], cost: 1 4.93/2.30 4.93/2.30 5: evalspeedpldi4bb5in -> evalspeedpldi4returnin : [ 0>=B ], cost: 1 4.93/2.30 4.93/2.30 6: evalspeedpldi4bb2in -> evalspeedpldi4bb3in : [ A>=1+B ], cost: 1 4.93/2.30 4.93/2.30 7: evalspeedpldi4bb2in -> evalspeedpldi4bb4in : [ B>=A ], cost: 1 4.93/2.30 4.93/2.30 8: evalspeedpldi4bb3in -> evalspeedpldi4bb5in : B'=-1+B, [], cost: 1 4.93/2.30 4.93/2.30 9: evalspeedpldi4bb4in -> evalspeedpldi4bb5in : B'=-A+B, [], cost: 1 4.93/2.30 4.93/2.30 10: evalspeedpldi4returnin -> evalspeedpldi4stop : [], cost: 1 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Removed unreachable and leaf rules: 4.93/2.30 4.93/2.30 Start location: evalspeedpldi4start 4.93/2.30 4.93/2.30 0: evalspeedpldi4start -> evalspeedpldi4entryin : [], cost: 1 4.93/2.30 4.93/2.30 3: evalspeedpldi4entryin -> evalspeedpldi4bb5in : [ A>=1 && B>=1+A ], cost: 1 4.93/2.30 4.93/2.30 4: evalspeedpldi4bb5in -> evalspeedpldi4bb2in : [ B>=1 ], cost: 1 4.93/2.30 4.93/2.30 6: evalspeedpldi4bb2in -> evalspeedpldi4bb3in : [ A>=1+B ], cost: 1 4.93/2.30 4.93/2.30 7: evalspeedpldi4bb2in -> evalspeedpldi4bb4in : [ B>=A ], cost: 1 4.93/2.30 4.93/2.30 8: evalspeedpldi4bb3in -> evalspeedpldi4bb5in : B'=-1+B, [], cost: 1 4.93/2.30 4.93/2.30 9: evalspeedpldi4bb4in -> evalspeedpldi4bb5in : B'=-A+B, [], cost: 1 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 ### Simplification by acceleration and chaining ### 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Eliminated locations (on linear paths): 4.93/2.30 4.93/2.30 Start location: evalspeedpldi4start 4.93/2.30 4.93/2.30 11: evalspeedpldi4start -> evalspeedpldi4bb5in : [ A>=1 && B>=1+A ], cost: 2 4.93/2.30 4.93/2.30 4: evalspeedpldi4bb5in -> evalspeedpldi4bb2in : [ B>=1 ], cost: 1 4.93/2.30 4.93/2.30 12: evalspeedpldi4bb2in -> evalspeedpldi4bb5in : B'=-1+B, [ A>=1+B ], cost: 2 4.93/2.30 4.93/2.30 13: evalspeedpldi4bb2in -> evalspeedpldi4bb5in : B'=-A+B, [ B>=A ], cost: 2 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Eliminated locations (on tree-shaped paths): 4.93/2.30 4.93/2.30 Start location: evalspeedpldi4start 4.93/2.30 4.93/2.30 11: evalspeedpldi4start -> evalspeedpldi4bb5in : [ A>=1 && B>=1+A ], cost: 2 4.93/2.30 4.93/2.30 14: evalspeedpldi4bb5in -> evalspeedpldi4bb5in : B'=-1+B, [ B>=1 && A>=1+B ], cost: 3 4.93/2.30 4.93/2.30 15: evalspeedpldi4bb5in -> evalspeedpldi4bb5in : B'=-A+B, [ B>=1 && B>=A ], cost: 3 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Accelerating simple loops of location 2. 4.93/2.30 4.93/2.30 Accelerating the following rules: 4.93/2.30 4.93/2.30 14: evalspeedpldi4bb5in -> evalspeedpldi4bb5in : B'=-1+B, [ B>=1 && A>=1+B ], cost: 3 4.93/2.30 4.93/2.30 15: evalspeedpldi4bb5in -> evalspeedpldi4bb5in : B'=-A+B, [ B>=1 && B>=A ], cost: 3 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Accelerated rule 14 with metering function B, yielding the new rule 16. 4.93/2.30 4.93/2.30 Found no metering function for rule 15. 4.93/2.30 4.93/2.30 Removing the simple loops: 14. 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Accelerated all simple loops using metering functions (where possible): 4.93/2.30 4.93/2.30 Start location: evalspeedpldi4start 4.93/2.30 4.93/2.30 11: evalspeedpldi4start -> evalspeedpldi4bb5in : [ A>=1 && B>=1+A ], cost: 2 4.93/2.30 4.93/2.30 15: evalspeedpldi4bb5in -> evalspeedpldi4bb5in : B'=-A+B, [ B>=1 && B>=A ], cost: 3 4.93/2.30 4.93/2.30 16: evalspeedpldi4bb5in -> evalspeedpldi4bb5in : B'=0, [ B>=1 && A>=1+B ], cost: 3*B 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Chained accelerated rules (with incoming rules): 4.93/2.30 4.93/2.30 Start location: evalspeedpldi4start 4.93/2.30 4.93/2.30 11: evalspeedpldi4start -> evalspeedpldi4bb5in : [ A>=1 && B>=1+A ], cost: 2 4.93/2.30 4.93/2.30 17: evalspeedpldi4start -> evalspeedpldi4bb5in : B'=-A+B, [ A>=1 && B>=1+A && B>=1 ], cost: 5 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Removed unreachable locations (and leaf rules with constant cost): 4.93/2.30 4.93/2.30 Start location: evalspeedpldi4start 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 ### Computing asymptotic complexity ### 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Fully simplified ITS problem 4.93/2.30 4.93/2.30 Start location: evalspeedpldi4start 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Obtained the following overall complexity (w.r.t. the length of the input n): 4.93/2.30 4.93/2.30 Complexity: Unknown 4.93/2.30 4.93/2.30 Cpx degree: ? 4.93/2.30 4.93/2.30 Solved cost: 0 4.93/2.30 4.93/2.30 Rule cost: 0 4.93/2.30 4.93/2.30 Rule guard: [] 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 WORST_CASE(Omega(0),?) 4.93/2.30 4.93/2.30 4.93/2.30 ---------------------------------------- 4.93/2.30 4.93/2.30 (4) 4.93/2.30 BOUNDS(1, INF) 4.93/2.30 4.93/2.30 ---------------------------------------- 4.93/2.30 4.93/2.30 (5) Koat2 Proof (FINISHED) 4.93/2.30 YES( ?, 6+max([5, 1+2*Arg_1])*max([3, 3*Arg_0])+max([5, 1+2*Arg_1])*max([4, 4*Arg_0])+max([5, 1+2*Arg_1])*max([5, 5*Arg_0])+max([5, 1+2*Arg_1])+max([0, Arg_1]) {O(n^2)}) 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Initial Complexity Problem: 4.93/2.30 4.93/2.30 Start: evalspeedpldi4start 4.93/2.30 4.93/2.30 Program_Vars: Arg_0, Arg_1 4.93/2.30 4.93/2.30 Temp_Vars: 4.93/2.30 4.93/2.30 Locations: evalspeedpldi4bb2in, evalspeedpldi4bb3in, evalspeedpldi4bb4in, evalspeedpldi4bb5in, evalspeedpldi4entryin, evalspeedpldi4returnin, evalspeedpldi4start, evalspeedpldi4stop 4.93/2.30 4.93/2.30 Transitions: 4.93/2.30 4.93/2.30 evalspeedpldi4bb2in(Arg_0,Arg_1) -> evalspeedpldi4bb3in(Arg_0,Arg_1):|:1 <= Arg_0 && Arg_1+1 <= Arg_0 4.93/2.30 4.93/2.30 evalspeedpldi4bb2in(Arg_0,Arg_1) -> evalspeedpldi4bb4in(Arg_0,Arg_1):|:1 <= Arg_0 && Arg_0 <= Arg_1 4.93/2.30 4.93/2.30 evalspeedpldi4bb3in(Arg_0,Arg_1) -> evalspeedpldi4bb5in(Arg_0,Arg_1-1):|:1+Arg_1 <= Arg_0 && 1 <= Arg_0 4.93/2.30 4.93/2.30 evalspeedpldi4bb4in(Arg_0,Arg_1) -> evalspeedpldi4bb5in(Arg_0,Arg_1-Arg_0):|:1 <= Arg_0 4.93/2.30 4.93/2.30 evalspeedpldi4bb5in(Arg_0,Arg_1) -> evalspeedpldi4bb2in(Arg_0,Arg_1):|:1 <= Arg_0 && 1 <= Arg_1 4.93/2.30 4.93/2.30 evalspeedpldi4bb5in(Arg_0,Arg_1) -> evalspeedpldi4returnin(Arg_0,Arg_1):|:1 <= Arg_0 && Arg_1 <= 0 4.93/2.30 4.93/2.30 evalspeedpldi4entryin(Arg_0,Arg_1) -> evalspeedpldi4bb5in(Arg_0,Arg_1):|:1 <= Arg_0 && Arg_0+1 <= Arg_1 4.93/2.30 4.93/2.30 evalspeedpldi4entryin(Arg_0,Arg_1) -> evalspeedpldi4returnin(Arg_0,Arg_1):|:Arg_0 <= 0 4.93/2.30 4.93/2.30 evalspeedpldi4entryin(Arg_0,Arg_1) -> evalspeedpldi4returnin(Arg_0,Arg_1):|:Arg_1 <= Arg_0 4.93/2.30 4.93/2.30 evalspeedpldi4returnin(Arg_0,Arg_1) -> evalspeedpldi4stop(Arg_0,Arg_1):|: 4.93/2.30 4.93/2.30 evalspeedpldi4start(Arg_0,Arg_1) -> evalspeedpldi4entryin(Arg_0,Arg_1):|: 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Timebounds: 4.93/2.30 4.93/2.30 Overall timebound: 6+max([5, 1+2*Arg_1])*max([3, 3*Arg_0])+max([5, 1+2*Arg_1])*max([4, 4*Arg_0])+max([5, 1+2*Arg_1])*max([5, 5*Arg_0])+max([5, 1+2*Arg_1])+max([0, Arg_1]) {O(n^2)} 4.93/2.30 4.93/2.30 6: evalspeedpldi4bb2in->evalspeedpldi4bb3in: max([5, 1+2*Arg_1])*max([4, 4*Arg_0]) {O(n^2)} 4.93/2.30 4.93/2.30 7: evalspeedpldi4bb2in->evalspeedpldi4bb4in: max([0, Arg_1]) {O(n)} 4.93/2.30 4.93/2.30 8: evalspeedpldi4bb3in->evalspeedpldi4bb5in: max([5, 1+2*Arg_1])*max([5, 5*Arg_0]) {O(n^2)} 4.93/2.30 4.93/2.30 9: evalspeedpldi4bb4in->evalspeedpldi4bb5in: max([5, 1+2*Arg_1])*max([3, 3*Arg_0]) {O(n^2)} 4.93/2.30 4.93/2.30 4: evalspeedpldi4bb5in->evalspeedpldi4bb2in: max([5, 1+2*Arg_1]) {O(n)} 4.93/2.30 4.93/2.30 5: evalspeedpldi4bb5in->evalspeedpldi4returnin: 1 {O(1)} 4.93/2.30 4.93/2.30 1: evalspeedpldi4entryin->evalspeedpldi4returnin: 1 {O(1)} 4.93/2.30 4.93/2.30 2: evalspeedpldi4entryin->evalspeedpldi4returnin: 1 {O(1)} 4.93/2.30 4.93/2.30 3: evalspeedpldi4entryin->evalspeedpldi4bb5in: 1 {O(1)} 4.93/2.30 4.93/2.30 10: evalspeedpldi4returnin->evalspeedpldi4stop: 1 {O(1)} 4.93/2.30 4.93/2.30 0: evalspeedpldi4start->evalspeedpldi4entryin: 1 {O(1)} 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Costbounds: 4.93/2.30 4.93/2.30 Overall costbound: 6+max([5, 1+2*Arg_1])*max([3, 3*Arg_0])+max([5, 1+2*Arg_1])*max([4, 4*Arg_0])+max([5, 1+2*Arg_1])*max([5, 5*Arg_0])+max([5, 1+2*Arg_1])+max([0, Arg_1]) {O(n^2)} 4.93/2.30 4.93/2.30 6: evalspeedpldi4bb2in->evalspeedpldi4bb3in: max([5, 1+2*Arg_1])*max([4, 4*Arg_0]) {O(n^2)} 4.93/2.30 4.93/2.30 7: evalspeedpldi4bb2in->evalspeedpldi4bb4in: max([0, Arg_1]) {O(n)} 4.93/2.30 4.93/2.30 8: evalspeedpldi4bb3in->evalspeedpldi4bb5in: max([5, 1+2*Arg_1])*max([5, 5*Arg_0]) {O(n^2)} 4.93/2.30 4.93/2.30 9: evalspeedpldi4bb4in->evalspeedpldi4bb5in: max([5, 1+2*Arg_1])*max([3, 3*Arg_0]) {O(n^2)} 4.93/2.30 4.93/2.30 4: evalspeedpldi4bb5in->evalspeedpldi4bb2in: max([5, 1+2*Arg_1]) {O(n)} 4.93/2.30 4.93/2.30 5: evalspeedpldi4bb5in->evalspeedpldi4returnin: 1 {O(1)} 4.93/2.30 4.93/2.30 1: evalspeedpldi4entryin->evalspeedpldi4returnin: 1 {O(1)} 4.93/2.30 4.93/2.30 2: evalspeedpldi4entryin->evalspeedpldi4returnin: 1 {O(1)} 4.93/2.30 4.93/2.30 3: evalspeedpldi4entryin->evalspeedpldi4bb5in: 1 {O(1)} 4.93/2.30 4.93/2.30 10: evalspeedpldi4returnin->evalspeedpldi4stop: 1 {O(1)} 4.93/2.30 4.93/2.30 0: evalspeedpldi4start->evalspeedpldi4entryin: 1 {O(1)} 4.93/2.30 4.93/2.30 4.93/2.30 4.93/2.30 Sizebounds: 4.93/2.30 4.93/2.30 `Lower: 4.93/2.30 4.93/2.30 6: evalspeedpldi4bb2in->evalspeedpldi4bb3in, Arg_0: 1 {O(1)} 4.93/2.30 4.93/2.30 6: evalspeedpldi4bb2in->evalspeedpldi4bb3in, Arg_1: 1 {O(1)} 4.93/2.30 4.93/2.30 7: evalspeedpldi4bb2in->evalspeedpldi4bb4in, Arg_0: 1 {O(1)} 4.93/2.30 4.93/2.30 7: evalspeedpldi4bb2in->evalspeedpldi4bb4in, Arg_1: 1 {O(1)} 4.93/2.30 4.93/2.30 8: evalspeedpldi4bb3in->evalspeedpldi4bb5in, Arg_0: 1 {O(1)} 4.93/2.30 4.93/2.30 8: evalspeedpldi4bb3in->evalspeedpldi4bb5in, Arg_1: 0 {O(1)} 4.93/2.30 4.93/2.30 9: evalspeedpldi4bb4in->evalspeedpldi4bb5in, Arg_0: 1 {O(1)} 4.93/2.30 4.93/2.30 9: evalspeedpldi4bb4in->evalspeedpldi4bb5in, Arg_1: 1-Arg_0 {O(n)} 4.93/2.30 4.93/2.30 4: evalspeedpldi4bb5in->evalspeedpldi4bb2in, Arg_0: 1 {O(1)} 4.93/2.30 4.93/2.30 4: evalspeedpldi4bb5in->evalspeedpldi4bb2in, Arg_1: 1 {O(1)} 4.93/2.30 4.93/2.30 5: evalspeedpldi4bb5in->evalspeedpldi4returnin, Arg_0: 1 {O(1)} 4.93/2.30 4.93/2.30 5: evalspeedpldi4bb5in->evalspeedpldi4returnin, Arg_1: min([0, -(-1+Arg_0)]) {O(n)} 4.93/2.30 4.93/2.30 1: evalspeedpldi4entryin->evalspeedpldi4returnin, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 1: evalspeedpldi4entryin->evalspeedpldi4returnin, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 2: evalspeedpldi4entryin->evalspeedpldi4returnin, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 2: evalspeedpldi4entryin->evalspeedpldi4returnin, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 3: evalspeedpldi4entryin->evalspeedpldi4bb5in, Arg_0: 1 {O(1)} 4.93/2.30 4.93/2.30 3: evalspeedpldi4entryin->evalspeedpldi4bb5in, Arg_1: 2 {O(1)} 4.93/2.30 4.93/2.30 10: evalspeedpldi4returnin->evalspeedpldi4stop, Arg_0: min([1, Arg_0]) {O(n)} 4.93/2.30 4.93/2.30 10: evalspeedpldi4returnin->evalspeedpldi4stop, Arg_1: min([0, min([Arg_1, -(-1+Arg_0)])]) {O(n)} 4.93/2.30 4.93/2.30 0: evalspeedpldi4start->evalspeedpldi4entryin, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 0: evalspeedpldi4start->evalspeedpldi4entryin, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 `Upper: 4.93/2.30 4.93/2.30 6: evalspeedpldi4bb2in->evalspeedpldi4bb3in, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 6: evalspeedpldi4bb2in->evalspeedpldi4bb3in, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 7: evalspeedpldi4bb2in->evalspeedpldi4bb4in, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 7: evalspeedpldi4bb2in->evalspeedpldi4bb4in, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 8: evalspeedpldi4bb3in->evalspeedpldi4bb5in, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 8: evalspeedpldi4bb3in->evalspeedpldi4bb5in, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 9: evalspeedpldi4bb4in->evalspeedpldi4bb5in, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 9: evalspeedpldi4bb4in->evalspeedpldi4bb5in, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 4: evalspeedpldi4bb5in->evalspeedpldi4bb2in, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 4: evalspeedpldi4bb5in->evalspeedpldi4bb2in, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 5: evalspeedpldi4bb5in->evalspeedpldi4returnin, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 5: evalspeedpldi4bb5in->evalspeedpldi4returnin, Arg_1: 0 {O(1)} 4.93/2.30 4.93/2.30 1: evalspeedpldi4entryin->evalspeedpldi4returnin, Arg_0: 0 {O(1)} 4.93/2.30 4.93/2.30 1: evalspeedpldi4entryin->evalspeedpldi4returnin, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 2: evalspeedpldi4entryin->evalspeedpldi4returnin, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 2: evalspeedpldi4entryin->evalspeedpldi4returnin, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 3: evalspeedpldi4entryin->evalspeedpldi4bb5in, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 3: evalspeedpldi4entryin->evalspeedpldi4bb5in, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 10: evalspeedpldi4returnin->evalspeedpldi4stop, Arg_0: max([0, Arg_0]) {O(n)} 4.93/2.30 4.93/2.30 10: evalspeedpldi4returnin->evalspeedpldi4stop, Arg_1: max([0, Arg_1]) {O(n)} 4.93/2.30 4.93/2.30 0: evalspeedpldi4start->evalspeedpldi4entryin, Arg_0: Arg_0 {O(n)} 4.93/2.30 4.93/2.30 0: evalspeedpldi4start->evalspeedpldi4entryin, Arg_1: Arg_1 {O(n)} 4.93/2.30 4.93/2.30 4.93/2.30 ---------------------------------------- 4.93/2.30 4.93/2.30 (6) 4.93/2.30 BOUNDS(1, max(5, 1 + 2 * Arg_1) * max(4, 4 * Arg_0) + max(5, 1 + 2 * Arg_1) * max(5, 5 * Arg_0) + max(5, 1 + 2 * Arg_1) * max(3, 3 * Arg_0) + nat(Arg_1) + max(11, 7 + 2 * Arg_1)) 4.93/2.32 EOF