5.58/2.89 WORST_CASE(Omega(n^1), O(n^2)) 5.58/2.90 proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat 5.58/2.90 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 5.58/2.90 5.58/2.90 5.58/2.90 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^1, n^2). 5.58/2.90 5.58/2.90 (0) CpxIntTrs 5.58/2.90 (1) Koat Proof [FINISHED, 318 ms] 5.58/2.90 (2) BOUNDS(1, n^2) 5.58/2.90 (3) Loat Proof [FINISHED, 1219 ms] 5.58/2.90 (4) BOUNDS(n^1, INF) 5.58/2.90 5.58/2.90 5.58/2.90 ---------------------------------------- 5.58/2.90 5.58/2.90 (0) 5.58/2.90 Obligation: 5.58/2.90 Complexity Int TRS consisting of the following rules: 5.58/2.90 evalEx7start(A, B, C) -> Com_1(evalEx7entryin(A, B, C)) :|: TRUE 5.58/2.90 evalEx7entryin(A, B, C) -> Com_1(evalEx7bb3in(A, B, A + 1)) :|: A >= 1 && B >= A + 1 5.58/2.90 evalEx7bb3in(A, B, C) -> Com_1(evalEx7bbin(A, B, C)) :|: A >= C + 1 5.58/2.90 evalEx7bb3in(A, B, C) -> Com_1(evalEx7bbin(A, B, C)) :|: C >= A + 1 5.58/2.90 evalEx7bb3in(A, B, C) -> Com_1(evalEx7returnin(A, B, C)) :|: C >= A && C <= A 5.58/2.90 evalEx7bbin(A, B, C) -> Com_1(evalEx7bb3in(A, B, 0)) :|: C >= B + 1 5.58/2.90 evalEx7bbin(A, B, C) -> Com_1(evalEx7bb3in(A, B, C + 1)) :|: B >= C 5.58/2.90 evalEx7returnin(A, B, C) -> Com_1(evalEx7stop(A, B, C)) :|: TRUE 5.58/2.90 5.58/2.90 The start-symbols are:[evalEx7start_3] 5.58/2.90 5.58/2.90 5.58/2.90 ---------------------------------------- 5.58/2.90 5.58/2.90 (1) Koat Proof (FINISHED) 5.58/2.90 YES(?, 20*ar_1^2 + 62*ar_1 + 35) 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Initial complexity problem: 5.58/2.90 5.58/2.90 1: T: 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_0 >= ar_2 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_2 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ ar_2 = ar_0 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, 0)) [ ar_2 >= ar_1 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7start(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 5.58/2.90 5.58/2.90 start location: koat_start 5.58/2.90 5.58/2.90 leaf cost: 0 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Repeatedly propagating knowledge in problem 1 produces the following problem: 5.58/2.90 5.58/2.90 2: T: 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_0 >= ar_2 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_2 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ ar_2 = ar_0 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, 0)) [ ar_2 >= ar_1 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7start(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 5.58/2.90 5.58/2.90 start location: koat_start 5.58/2.90 5.58/2.90 leaf cost: 0 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 A polynomial rank function with 5.58/2.90 5.58/2.90 Pol(evalEx7start) = 2 5.58/2.90 5.58/2.90 Pol(evalEx7entryin) = 2 5.58/2.90 5.58/2.90 Pol(evalEx7bb3in) = 2 5.58/2.90 5.58/2.90 Pol(evalEx7bbin) = 2 5.58/2.90 5.58/2.90 Pol(evalEx7returnin) = 1 5.58/2.90 5.58/2.90 Pol(evalEx7stop) = 0 5.58/2.90 5.58/2.90 Pol(koat_start) = 2 5.58/2.90 5.58/2.90 orients all transitions weakly and the transitions 5.58/2.90 5.58/2.90 evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) 5.58/2.90 5.58/2.90 evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ ar_2 = ar_0 ] 5.58/2.90 5.58/2.90 strictly and produces the following problem: 5.58/2.90 5.58/2.90 3: T: 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_0 >= ar_2 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_2 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ ar_2 = ar_0 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, 0)) [ ar_2 >= ar_1 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7start(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 5.58/2.90 5.58/2.90 start location: koat_start 5.58/2.90 5.58/2.90 leaf cost: 0 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Applied AI with 'oct' on problem 3 to obtain the following invariants: 5.58/2.90 5.58/2.90 For symbol evalEx7bb3in: X_2 - 2 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0 5.58/2.90 5.58/2.90 For symbol evalEx7bbin: X_2 - 2 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0 5.58/2.90 5.58/2.90 For symbol evalEx7returnin: X_2 - X_3 - 1 >= 0 /\ X_1 - X_3 >= 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.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 This yielded the following problem: 5.58/2.90 5.58/2.90 4: T: 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7start(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 5.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 >= 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.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) 5.58/2.90 5.58/2.90 start location: koat_start 5.58/2.90 5.58/2.90 leaf cost: 0 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 By chaining the transition koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7start(ar_0, ar_1, ar_2)) [ 0 <= 0 ] with all transitions in problem 4, the following new transition is obtained: 5.58/2.90 5.58/2.90 koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 5.58/2.90 5.58/2.90 We thus obtain the following problem: 5.58/2.90 5.58/2.90 5: T: 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 5.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 >= 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.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) 5.58/2.90 5.58/2.90 start location: koat_start 5.58/2.90 5.58/2.90 leaf cost: 0 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Testing for reachability in the complexity graph removes the following transition from problem 5: 5.58/2.90 5.58/2.90 evalEx7start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) 5.58/2.90 5.58/2.90 We thus obtain the following problem: 5.58/2.90 5.58/2.90 6: T: 5.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 >= 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.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 5.58/2.90 5.58/2.90 start location: koat_start 5.58/2.90 5.58/2.90 leaf cost: 0 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 By chaining the transition evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ 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 ] with all transitions in problem 6, the following new transition is obtained: 5.58/2.90 5.58/2.90 evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 We thus obtain the following problem: 5.58/2.90 5.58/2.90 7: T: 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 2) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 >= 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.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 5.58/2.90 5.58/2.90 start location: koat_start 5.58/2.90 5.58/2.90 leaf cost: 0 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 A polynomial rank function with 5.58/2.90 5.58/2.90 Pol(evalEx7bbin) = V_2 - V_3 + 1 5.58/2.90 5.58/2.90 Pol(evalEx7bb3in) = V_2 - V_3 + 1 5.58/2.90 5.58/2.90 and size complexities 5.58/2.90 5.58/2.90 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-2) = ar_2 5.58/2.90 5.58/2.90 S("evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-2) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 + 1 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 + 1 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 + 1 ]", 0-2) = ? 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_2 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_2 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_2 ]", 0-2) = ? 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ]", 0-2) = 0 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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) = ? 5.58/2.90 5.58/2.90 S("evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\\ ar_0 - ar_2 >= 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.58/2.90 5.58/2.90 S("evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\\ ar_0 - ar_2 >= 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.58/2.90 5.58/2.90 S("evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\\ ar_0 - ar_2 >= 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) = ? 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\\ ar_1 >= ar_2 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\\ ar_1 >= ar_2 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\\ ar_1 >= ar_2 ]", 0-2) = ? 5.58/2.90 5.58/2.90 orients the transitions 5.58/2.90 5.58/2.90 evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 weakly and the transition 5.58/2.90 5.58/2.90 evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 strictly and produces the following problem: 5.58/2.90 5.58/2.90 8: T: 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 2) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 >= 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.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 2*ar_1 + 1, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 5.58/2.90 5.58/2.90 start location: koat_start 5.58/2.90 5.58/2.90 leaf cost: 0 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Repeatedly propagating knowledge in problem 8 produces the following problem: 5.58/2.90 5.58/2.90 9: T: 5.58/2.90 5.58/2.90 (Comp: ?, Cost: 2) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 >= 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.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 (Comp: 2*ar_1 + 2, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 2*ar_1 + 1, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: 2*ar_1 + 2, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 5.58/2.90 5.58/2.90 start location: koat_start 5.58/2.90 5.58/2.90 leaf cost: 0 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 A polynomial rank function with 5.58/2.90 5.58/2.90 Pol(evalEx7bb3in) = V_2 - V_3 + 1 5.58/2.90 5.58/2.90 and size complexities 5.58/2.90 5.58/2.90 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-2) = ar_2 5.58/2.90 5.58/2.90 S("evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\\ ar_1 >= ar_0 + 1 ]", 0-2) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 + 1 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 + 1 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_2 >= ar_0 + 1 ]", 0-2) = 3*ar_1 + 9 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_2 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_2 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\\ ar_0 + ar_1 - 3 >= 0 /\\ -ar_0 + ar_1 - 1 >= 0 /\\ ar_0 - 1 >= 0 /\\ ar_1 >= ar_2 ]", 0-2) = 3*ar_1 + 9 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ]", 0-2) = 0 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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) = ? 5.58/2.90 5.58/2.90 S("evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\\ ar_0 - ar_2 >= 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.58/2.90 5.58/2.90 S("evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\\ ar_0 - ar_2 >= 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.58/2.90 5.58/2.90 S("evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\\ ar_0 - ar_2 >= 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) = ? 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\\ ar_1 >= ar_2 ]", 0-0) = ar_0 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\\ ar_1 >= ar_2 ]", 0-1) = ar_1 5.58/2.90 5.58/2.90 S("evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\\ ar_1 >= ar_2 ]", 0-2) = ? 5.58/2.90 5.58/2.90 orients the transitions 5.58/2.90 5.58/2.90 evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 weakly and the transition 5.58/2.90 5.58/2.90 evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 strictly and produces the following problem: 5.58/2.90 5.58/2.90 10: T: 5.58/2.90 5.58/2.90 (Comp: 10*ar_1^2 + 28*ar_1 + 12, Cost: 2) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ 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 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7returnin(ar_0, ar_1, ar_2) -> Com_1(evalEx7stop(ar_0, ar_1, ar_2)) [ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 >= 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.58/2.90 5.58/2.90 (Comp: 2, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7returnin(ar_0, ar_1, ar_2)) [ 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.58/2.90 5.58/2.90 (Comp: 2*ar_1 + 2, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_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_1 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 2*ar_1 + 1, Cost: 1) evalEx7bbin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_2 + 1)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_1 >= ar_2 ] 5.58/2.90 5.58/2.90 (Comp: 2*ar_1 + 2, Cost: 1) evalEx7bb3in(ar_0, ar_1, ar_2) -> Com_1(evalEx7bbin(ar_0, ar_1, ar_2)) [ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ ar_2 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) evalEx7entryin(ar_0, ar_1, ar_2) -> Com_1(evalEx7bb3in(ar_0, ar_1, ar_0 + 1)) [ ar_0 >= 1 /\ ar_1 >= ar_0 + 1 ] 5.58/2.90 5.58/2.90 (Comp: 1, Cost: 1) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalEx7entryin(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 5.58/2.90 5.58/2.90 start location: koat_start 5.58/2.90 5.58/2.90 leaf cost: 0 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Complexity upper bound 20*ar_1^2 + 62*ar_1 + 35 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Time: 0.333 sec (SMT: 0.280 sec) 5.58/2.90 5.58/2.90 5.58/2.90 ---------------------------------------- 5.58/2.90 5.58/2.90 (2) 5.58/2.90 BOUNDS(1, n^2) 5.58/2.90 5.58/2.90 ---------------------------------------- 5.58/2.90 5.58/2.90 (3) Loat Proof (FINISHED) 5.58/2.90 5.58/2.90 5.58/2.90 ### Pre-processing the ITS problem ### 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Initial linear ITS problem 5.58/2.90 5.58/2.90 Start location: evalEx7start 5.58/2.90 5.58/2.90 0: evalEx7start -> evalEx7entryin : [], cost: 1 5.58/2.90 5.58/2.90 1: evalEx7entryin -> evalEx7bb3in : C'=1+A, [ A>=1 && B>=1+A ], cost: 1 5.58/2.90 5.58/2.90 2: evalEx7bb3in -> evalEx7bbin : [ A>=1+C ], cost: 1 5.58/2.90 5.58/2.90 3: evalEx7bb3in -> evalEx7bbin : [ C>=1+A ], cost: 1 5.58/2.90 5.58/2.90 4: evalEx7bb3in -> evalEx7returnin : [ C==A ], cost: 1 5.58/2.90 5.58/2.90 5: evalEx7bbin -> evalEx7bb3in : C'=0, [ C>=1+B ], cost: 1 5.58/2.90 5.58/2.90 6: evalEx7bbin -> evalEx7bb3in : C'=1+C, [ B>=C ], cost: 1 5.58/2.90 5.58/2.90 7: evalEx7returnin -> evalEx7stop : [], cost: 1 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Removed unreachable and leaf rules: 5.58/2.90 5.58/2.90 Start location: evalEx7start 5.58/2.90 5.58/2.90 0: evalEx7start -> evalEx7entryin : [], cost: 1 5.58/2.90 5.58/2.90 1: evalEx7entryin -> evalEx7bb3in : C'=1+A, [ A>=1 && B>=1+A ], cost: 1 5.58/2.90 5.58/2.90 2: evalEx7bb3in -> evalEx7bbin : [ A>=1+C ], cost: 1 5.58/2.90 5.58/2.90 3: evalEx7bb3in -> evalEx7bbin : [ C>=1+A ], cost: 1 5.58/2.90 5.58/2.90 5: evalEx7bbin -> evalEx7bb3in : C'=0, [ C>=1+B ], cost: 1 5.58/2.90 5.58/2.90 6: evalEx7bbin -> evalEx7bb3in : C'=1+C, [ B>=C ], cost: 1 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 ### Simplification by acceleration and chaining ### 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Eliminated locations (on linear paths): 5.58/2.90 5.58/2.90 Start location: evalEx7start 5.58/2.90 5.58/2.90 8: evalEx7start -> evalEx7bb3in : C'=1+A, [ A>=1 && B>=1+A ], cost: 2 5.58/2.90 5.58/2.90 2: evalEx7bb3in -> evalEx7bbin : [ A>=1+C ], cost: 1 5.58/2.90 5.58/2.90 3: evalEx7bb3in -> evalEx7bbin : [ C>=1+A ], cost: 1 5.58/2.90 5.58/2.90 5: evalEx7bbin -> evalEx7bb3in : C'=0, [ C>=1+B ], cost: 1 5.58/2.90 5.58/2.90 6: evalEx7bbin -> evalEx7bb3in : C'=1+C, [ B>=C ], cost: 1 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Eliminated locations (on tree-shaped paths): 5.58/2.90 5.58/2.90 Start location: evalEx7start 5.58/2.90 5.58/2.90 8: evalEx7start -> evalEx7bb3in : C'=1+A, [ A>=1 && B>=1+A ], cost: 2 5.58/2.90 5.58/2.90 9: evalEx7bb3in -> evalEx7bb3in : C'=0, [ A>=1+C && C>=1+B ], cost: 2 5.58/2.90 5.58/2.90 10: evalEx7bb3in -> evalEx7bb3in : C'=1+C, [ A>=1+C && B>=C ], cost: 2 5.58/2.90 5.58/2.90 11: evalEx7bb3in -> evalEx7bb3in : C'=0, [ C>=1+A && C>=1+B ], cost: 2 5.58/2.90 5.58/2.90 12: evalEx7bb3in -> evalEx7bb3in : C'=1+C, [ C>=1+A && B>=C ], cost: 2 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Accelerating simple loops of location 2. 5.58/2.90 5.58/2.90 Accelerating the following rules: 5.58/2.90 5.58/2.90 9: evalEx7bb3in -> evalEx7bb3in : C'=0, [ A>=1+C && C>=1+B ], cost: 2 5.58/2.90 5.58/2.90 10: evalEx7bb3in -> evalEx7bb3in : C'=1+C, [ A>=1+C && B>=C ], cost: 2 5.58/2.90 5.58/2.90 11: evalEx7bb3in -> evalEx7bb3in : C'=0, [ C>=1+A && C>=1+B ], cost: 2 5.58/2.90 5.58/2.90 12: evalEx7bb3in -> evalEx7bb3in : C'=1+C, [ C>=1+A && B>=C ], cost: 2 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Accelerated rule 9 with NONTERM (after strengthening guard), yielding the new rule 13. 5.58/2.90 5.58/2.90 Accelerated rule 10 with backward acceleration, yielding the new rule 14. 5.58/2.90 5.58/2.90 Accelerated rule 10 with backward acceleration, yielding the new rule 15. 5.58/2.90 5.58/2.90 Accelerated rule 11 with NONTERM (after strengthening guard), yielding the new rule 16. 5.58/2.90 5.58/2.90 Accelerated rule 12 with metering function 1-C+B, yielding the new rule 17. 5.58/2.90 5.58/2.90 Nested simple loops 9 (outer loop) and 15 (inner loop) with NONTERM, resulting in the new rules: 18, 19. 5.58/2.90 5.58/2.90 Nested simple loops 11 (outer loop) and 17 (inner loop) with NONTERM, resulting in the new rules: 20, 21. 5.58/2.90 5.58/2.90 Removing the simple loops: 9 10 11 12. 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Accelerated all simple loops using metering functions (where possible): 5.58/2.90 5.58/2.90 Start location: evalEx7start 5.58/2.90 5.58/2.90 8: evalEx7start -> evalEx7bb3in : C'=1+A, [ A>=1 && B>=1+A ], cost: 2 5.58/2.90 5.58/2.90 13: evalEx7bb3in -> [6] : [ A>=1+C && C>=1+B && A>=1 && 0>=1+B ], cost: INF 5.58/2.90 5.58/2.90 14: evalEx7bb3in -> evalEx7bb3in : C'=A, [ A>=1+C && B>=C && B>=-1+A ], cost: -2*C+2*A 5.58/2.90 5.58/2.90 15: evalEx7bb3in -> evalEx7bb3in : C'=1+B, [ A>=1+C && B>=C && A>=1+B ], cost: 2-2*C+2*B 5.58/2.90 5.58/2.90 16: evalEx7bb3in -> [6] : [ C>=1+A && C>=1+B && 0>=1+A && 0>=1+B ], cost: INF 5.58/2.90 5.58/2.90 17: evalEx7bb3in -> evalEx7bb3in : C'=1+B, [ C>=1+A && B>=C ], cost: 2-2*C+2*B 5.58/2.90 5.58/2.90 18: evalEx7bb3in -> [6] : [ A>=1+C && C>=1+B && A>=1 && B>=0 && A>=1+B && 4+2*B>=1 ], cost: INF 5.58/2.90 5.58/2.90 19: evalEx7bb3in -> [6] : C'=1+B, [ A>=1+C && B>=C && A>=2+B && A>=1 && B>=0 && 4+2*B>=1 ], cost: INF 5.58/2.90 5.58/2.90 20: evalEx7bb3in -> [6] : [ C>=1+A && C>=1+B && 0>=1+A && B>=0 && 4+2*B>=1 ], cost: INF 5.58/2.90 5.58/2.90 21: evalEx7bb3in -> [6] : C'=1+B, [ C>=1+A && B>=C && 1+B>=1+A && 0>=1+A && B>=0 && 4+2*B>=1 ], cost: INF 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Chained accelerated rules (with incoming rules): 5.58/2.90 5.58/2.90 Start location: evalEx7start 5.58/2.90 5.58/2.90 8: evalEx7start -> evalEx7bb3in : C'=1+A, [ A>=1 && B>=1+A ], cost: 2 5.58/2.90 5.58/2.90 22: evalEx7start -> evalEx7bb3in : C'=1+B, [ A>=1 && B>=1+A ], cost: 2-2*A+2*B 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Removed unreachable locations (and leaf rules with constant cost): 5.58/2.90 5.58/2.90 Start location: evalEx7start 5.58/2.90 5.58/2.90 22: evalEx7start -> evalEx7bb3in : C'=1+B, [ A>=1 && B>=1+A ], cost: 2-2*A+2*B 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 ### Computing asymptotic complexity ### 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Fully simplified ITS problem 5.58/2.90 5.58/2.90 Start location: evalEx7start 5.58/2.90 5.58/2.90 22: evalEx7start -> evalEx7bb3in : C'=1+B, [ A>=1 && B>=1+A ], cost: 2-2*A+2*B 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Computing asymptotic complexity for rule 22 5.58/2.90 5.58/2.90 Solved the limit problem by the following transformations: 5.58/2.90 5.58/2.90 Created initial limit problem: 5.58/2.90 5.58/2.90 2-2*A+2*B (+), A (+/+!), -A+B (+/+!) [not solved] 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 applying transformation rule (C) using substitution {A==1} 5.58/2.90 5.58/2.90 resulting limit problem: 5.58/2.90 5.58/2.90 1 (+/+!), -1+B (+/+!), 2*B (+) [not solved] 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 applying transformation rule (C) using substitution {B==1+A} 5.58/2.90 5.58/2.90 resulting limit problem: 5.58/2.90 5.58/2.90 1 (+/+!), A (+/+!), 2+2*A (+) [not solved] 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 applying transformation rule (B), deleting 1 (+/+!) 5.58/2.90 5.58/2.90 resulting limit problem: 5.58/2.90 5.58/2.90 A (+/+!), 2+2*A (+) [not solved] 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 applying transformation rule (D), replacing 2+2*A (+) by 2*A (+) 5.58/2.90 5.58/2.90 resulting limit problem: 5.58/2.90 5.58/2.90 2*A (+), A (+/+!) [not solved] 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 applying transformation rule (A), replacing 2*A (+) by A (+) and 2 (+!) using + limit vector (+,+!) 5.58/2.90 5.58/2.90 resulting limit problem: 5.58/2.90 5.58/2.90 2 (+!), A (+) [not solved] 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 applying transformation rule (B), deleting 2 (+!) 5.58/2.90 5.58/2.90 resulting limit problem: 5.58/2.90 5.58/2.90 A (+) [solved] 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Solution: 5.58/2.90 5.58/2.90 A / 1 5.58/2.90 5.58/2.90 B / 1+n 5.58/2.90 5.58/2.90 Resulting cost 2+2*n has complexity: Poly(n^1) 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Found new complexity Poly(n^1). 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 Obtained the following overall complexity (w.r.t. the length of the input n): 5.58/2.90 5.58/2.90 Complexity: Poly(n^1) 5.58/2.90 5.58/2.90 Cpx degree: 1 5.58/2.90 5.58/2.90 Solved cost: 2+2*n 5.58/2.90 5.58/2.90 Rule cost: 2-2*A+2*B 5.58/2.90 5.58/2.90 Rule guard: [ A>=1 && B>=1+A ] 5.58/2.90 5.58/2.90 5.58/2.90 5.58/2.90 WORST_CASE(Omega(n^1),?) 5.58/2.90 5.58/2.90 5.58/2.90 ---------------------------------------- 5.58/2.90 5.58/2.90 (4) 5.58/2.90 BOUNDS(n^1, INF) 5.68/3.28 EOF