/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.koat /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), O(n^1)) proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^1, n^1). (0) CpxIntTrs (1) Koat Proof [FINISHED, 431 ms] (2) BOUNDS(1, n^1) (3) Loat Proof [FINISHED, 1458 ms] (4) BOUNDS(n^1, INF) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: evalcomplexstart(A, B, C, D, E) -> Com_1(evalcomplexentryin(A, B, C, D, E)) :|: TRUE evalcomplexentryin(A, B, C, D, E) -> Com_1(evalcomplexbb10in(B, A, C, D, E)) :|: TRUE evalcomplexbb10in(A, B, C, D, E) -> Com_1(evalcomplexbb8in(A, B, A, B, E)) :|: 29 >= B evalcomplexbb10in(A, B, C, D, E) -> Com_1(evalcomplexreturnin(A, B, C, D, E)) :|: B >= 30 evalcomplexbb8in(A, B, C, D, E) -> Com_1(evalcomplexbb1in(A, B, C, D, E)) :|: D >= C + 1 evalcomplexbb8in(A, B, C, D, E) -> Com_1(evalcomplexbb9in(A, B, C, D, E)) :|: C >= D evalcomplexbb1in(A, B, C, D, E) -> Com_1(evalcomplexbb7in(A, B, C, D, C + 7)) :|: C >= 6 && 2 >= C evalcomplexbb1in(A, B, C, D, E) -> Com_1(evalcomplexbb7in(A, B, C, D, C + 7)) :|: C >= 6 evalcomplexbb1in(A, B, C, D, E) -> Com_1(evalcomplexbb6in(A, B, C, D, C + 7)) :|: C >= 6 && C >= 3 && 5 >= C evalcomplexbb1in(A, B, C, D, E) -> Com_1(evalcomplexbb7in(A, B, C, D, C + 2)) :|: 5 >= C && 7 >= C evalcomplexbb1in(A, B, C, D, E) -> Com_1(evalcomplexbb7in(A, B, C, D, C + 2)) :|: 5 >= C && C >= 11 evalcomplexbb1in(A, B, C, D, E) -> Com_1(evalcomplexbb6in(A, B, C, D, C + 2)) :|: 5 >= C && C >= 8 && 10 >= C evalcomplexbb7in(A, B, C, D, E) -> Com_1(evalcomplexbb8in(A, B, E, D + 1, E)) :|: TRUE evalcomplexbb6in(A, B, C, D, E) -> Com_1(evalcomplexbb8in(A, B, E, D + 10, E)) :|: TRUE evalcomplexbb9in(A, B, C, D, E) -> Com_1(evalcomplexbb10in(C - 10, D + 2, C, D, E)) :|: TRUE evalcomplexreturnin(A, B, C, D, E) -> Com_1(evalcomplexstop(A, B, C, D, E)) :|: TRUE The start-symbols are:[evalcomplexstart_5] ---------------------------------------- (1) Koat Proof (FINISHED) YES(?, 65*ar_0 + 12*ar_1 + 2304) Initial complexity problem: 1: T: (Comp: ?, Cost: 1) evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ] (Comp: ?, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ] (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ] (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 /\ 2 >= ar_2 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb6in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 /\ ar_2 >= 3 /\ 5 >= ar_2 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\ 7 >= ar_2 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\ ar_2 >= 11 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb6in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\ ar_2 >= 8 /\ 10 >= ar_2 ] (Comp: ?, Cost: 1) evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb6in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 10, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] start location: koat_start leaf cost: 0 Testing for reachability in the complexity graph removes the following transitions from problem 1: evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 /\ 2 >= ar_2 ] evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb6in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 /\ ar_2 >= 3 /\ 5 >= ar_2 ] evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\ ar_2 >= 11 ] evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb6in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\ ar_2 >= 8 /\ 10 >= ar_2 ] evalcomplexbb6in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 10, ar_4)) We thus obtain the following problem: 2: T: (Comp: ?, Cost: 1) evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\ 7 >= ar_2 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ] (Comp: ?, Cost: 1) evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ] (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ] (Comp: ?, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ] (Comp: ?, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ] (Comp: ?, Cost: 1) evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] start location: koat_start leaf cost: 0 Repeatedly propagating knowledge in problem 2 produces the following problem: 3: T: (Comp: ?, Cost: 1) evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\ 7 >= ar_2 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ] (Comp: ?, Cost: 1) evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ] (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ] (Comp: ?, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ] (Comp: ?, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ] (Comp: 1, Cost: 1) evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 1) evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] start location: koat_start leaf cost: 0 A polynomial rank function with Pol(evalcomplexbb7in) = 2 Pol(evalcomplexbb8in) = 2 Pol(evalcomplexbb9in) = 2 Pol(evalcomplexbb10in) = 2 Pol(evalcomplexbb1in) = 2 Pol(evalcomplexreturnin) = 1 Pol(evalcomplexstop) = 0 Pol(evalcomplexentryin) = 2 Pol(evalcomplexstart) = 2 Pol(koat_start) = 2 orients all transitions weakly and the transitions evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4)) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ] strictly and produces the following problem: 4: T: (Comp: ?, Cost: 1) evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\ 7 >= ar_2 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ] (Comp: 2, Cost: 1) evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ] (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ] (Comp: 2, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ] (Comp: ?, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ] (Comp: 1, Cost: 1) evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 1) evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] start location: koat_start leaf cost: 0 A polynomial rank function with Pol(evalcomplexbb7in) = -V_4 + 27 Pol(evalcomplexbb8in) = -V_4 + 28 Pol(evalcomplexbb9in) = -V_4 + 28 Pol(evalcomplexbb10in) = -V_2 + 30 Pol(evalcomplexbb1in) = -V_4 + 27 Pol(evalcomplexreturnin) = -V_2 Pol(evalcomplexstop) = -V_2 Pol(evalcomplexentryin) = -V_1 + 30 Pol(evalcomplexstart) = -V_1 + 30 Pol(koat_start) = -V_1 + 30 orients all transitions weakly and the transition evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ] strictly and produces the following problem: 5: T: (Comp: ?, Cost: 1) evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\ 7 >= ar_2 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ] (Comp: 2, Cost: 1) evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ] (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ] (Comp: 2, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ] (Comp: ar_0 + 30, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ] (Comp: 1, Cost: 1) evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 1) evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] start location: koat_start leaf cost: 0 A polynomial rank function with Pol(evalcomplexbb9in) = 1 Pol(evalcomplexbb10in) = 0 Pol(evalcomplexbb8in) = 2 Pol(evalcomplexbb1in) = 2 Pol(evalcomplexbb7in) = 2 and size complexities S("koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]", 0-0) = ar_0 S("koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]", 0-1) = ar_1 S("koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]", 0-2) = ar_2 S("koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]", 0-3) = ar_3 S("koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]", 0-4) = ar_4 S("evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4))", 0-0) = ar_0 S("evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4))", 0-1) = ar_1 S("evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4))", 0-2) = ar_2 S("evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4))", 0-3) = ar_3 S("evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4))", 0-4) = ar_4 S("evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4))", 0-0) = ar_1 S("evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4))", 0-1) = ar_0 S("evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4))", 0-2) = ar_2 S("evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4))", 0-3) = ar_3 S("evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4))", 0-4) = ar_4 S("evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ]", 0-0) = ? S("evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ]", 0-1) = ? S("evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ]", 0-2) = ? S("evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ]", 0-3) = ? S("evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ]", 0-4) = ? S("evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ]", 0-0) = ? S("evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ]", 0-1) = ? S("evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ]", 0-2) = ? S("evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ]", 0-3) = ? S("evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ]", 0-4) = ? S("evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ]", 0-0) = ? S("evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ]", 0-1) = ? S("evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ]", 0-2) = ? S("evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ]", 0-3) = ? S("evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ]", 0-4) = ? S("evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ]", 0-0) = ? S("evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ]", 0-1) = ? S("evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ]", 0-2) = ? S("evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ]", 0-3) = ? S("evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ]", 0-4) = ? S("evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4))", 0-0) = ? S("evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4))", 0-1) = ? S("evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4))", 0-2) = ? S("evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4))", 0-3) = ? S("evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4))", 0-4) = ? S("evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ]", 0-0) = ? S("evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ]", 0-1) = ? S("evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ]", 0-2) = ? S("evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ]", 0-3) = ? S("evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ]", 0-4) = ? S("evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\\ 7 >= ar_2 ]", 0-0) = ? S("evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\\ 7 >= ar_2 ]", 0-1) = ? S("evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\\ 7 >= ar_2 ]", 0-2) = ? S("evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\\ 7 >= ar_2 ]", 0-3) = ? S("evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\\ 7 >= ar_2 ]", 0-4) = ? S("evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4))", 0-0) = ? S("evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4))", 0-1) = ? S("evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4))", 0-2) = ? S("evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4))", 0-3) = ? S("evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4))", 0-4) = ? S("evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4))", 0-0) = ? S("evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4))", 0-1) = ? S("evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4))", 0-2) = ? S("evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4))", 0-3) = ? S("evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4))", 0-4) = ? orients the transitions evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4)) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ] evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ] evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4)) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ] evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\ 7 >= ar_2 ] weakly and the transitions evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4)) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ] strictly and produces the following problem: 6: T: (Comp: ?, Cost: 1) evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4)) (Comp: 2*ar_0 + 60, Cost: 1) evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4)) (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ 5 >= ar_2 /\ 7 >= ar_2 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ ar_2 >= 6 ] (Comp: 2, Cost: 1) evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: 2*ar_0 + 60, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_2 >= ar_3 ] (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_3 >= ar_2 + 1 ] (Comp: 2, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ] (Comp: ar_0 + 30, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ] (Comp: 1, Cost: 1) evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 1) evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] start location: koat_start leaf cost: 0 Applied AI with 'oct' on problem 6 to obtain the following invariants: For symbol evalcomplexbb1in: -X_3 + X_4 - 1 >= 0 /\ -X_2 + X_4 >= 0 /\ -X_1 + X_4 - 1 >= 0 /\ -X_1 + X_3 >= 0 /\ -X_2 + 29 >= 0 For symbol evalcomplexbb7in: X_4 - X_5 + 6 >= 0 /\ X_3 - X_5 + 7 >= 0 /\ -X_3 + X_5 - 2 >= 0 /\ -X_1 + X_5 - 2 >= 0 /\ -X_3 + X_4 - 1 >= 0 /\ -X_2 + X_4 >= 0 /\ -X_1 + X_4 - 1 >= 0 /\ -X_1 + X_3 >= 0 /\ -X_2 + 29 >= 0 For symbol evalcomplexbb8in: -X_2 + X_4 >= 0 /\ -X_1 + X_3 >= 0 /\ -X_2 + 29 >= 0 For symbol evalcomplexbb9in: X_3 - X_4 >= 0 /\ -X_2 + X_4 >= 0 /\ -X_2 + X_3 >= 0 /\ -X_1 + X_3 >= 0 /\ -X_2 + 29 >= 0 For symbol evalcomplexreturnin: X_2 - 30 >= 0 This yielded the following problem: 7: T: (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] (Comp: 1, Cost: 1) evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 1) evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4)) (Comp: ar_0 + 30, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ] (Comp: 2, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ] (Comp: ?, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 /\ ar_3 >= ar_2 + 1 ] (Comp: 2*ar_0 + 60, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 /\ ar_2 >= ar_3 ] (Comp: 2, Cost: 1) evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 - 30 >= 0 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ -ar_2 + ar_3 - 1 >= 0 /\ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_3 - 1 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 /\ ar_2 >= 6 ] (Comp: ?, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ -ar_2 + ar_3 - 1 >= 0 /\ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_3 - 1 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 /\ 5 >= ar_2 /\ 7 >= ar_2 ] (Comp: 2*ar_0 + 60, Cost: 1) evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4)) [ ar_2 - ar_3 >= 0 /\ -ar_1 + ar_3 >= 0 /\ -ar_1 + ar_2 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 ] (Comp: ?, Cost: 1) evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4)) [ ar_3 - ar_4 + 6 >= 0 /\ ar_2 - ar_4 + 7 >= 0 /\ -ar_2 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 - 2 >= 0 /\ -ar_2 + ar_3 - 1 >= 0 /\ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_3 - 1 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 ] start location: koat_start leaf cost: 0 A polynomial rank function with Pol(koat_start) = -15*V_1 - 3*V_2 + 537 Pol(evalcomplexstart) = -15*V_1 - 3*V_2 + 537 Pol(evalcomplexentryin) = -15*V_1 - 3*V_2 + 537 Pol(evalcomplexbb10in) = -3*V_1 - 15*V_2 + 537 Pol(evalcomplexbb8in) = -18*V_2 - 3*V_3 + 3*V_4 + 537 Pol(evalcomplexreturnin) = -3*V_1 - 15*V_2 + 537 Pol(evalcomplexbb1in) = -18*V_2 - 3*V_3 + 3*V_4 + 536 Pol(evalcomplexbb9in) = -3*V_3 - 15*V_4 + 537 Pol(evalcomplexstop) = -3*V_1 - 15*V_2 + 537 Pol(evalcomplexbb7in) = -18*V_2 - 3*V_3 + 3*V_4 + 535 orients all transitions weakly and the transitions evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 /\ ar_3 >= ar_2 + 1 ] evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4)) [ ar_3 - ar_4 + 6 >= 0 /\ ar_2 - ar_4 + 7 >= 0 /\ -ar_2 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 - 2 >= 0 /\ -ar_2 + ar_3 - 1 >= 0 /\ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_3 - 1 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 ] evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ -ar_2 + ar_3 - 1 >= 0 /\ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_3 - 1 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 /\ ar_2 >= 6 ] evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ -ar_2 + ar_3 - 1 >= 0 /\ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_3 - 1 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 /\ 5 >= ar_2 /\ 7 >= ar_2 ] strictly and produces the following problem: 8: T: (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] (Comp: 1, Cost: 1) evalcomplexstart(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4)) (Comp: 1, Cost: 1) evalcomplexentryin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_1, ar_0, ar_2, ar_3, ar_4)) (Comp: ar_0 + 30, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_0, ar_1, ar_4)) [ 29 >= ar_1 ] (Comp: 2, Cost: 1) evalcomplexbb10in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 >= 30 ] (Comp: 15*ar_0 + 3*ar_1 + 537, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 /\ ar_3 >= ar_2 + 1 ] (Comp: 2*ar_0 + 60, Cost: 1) evalcomplexbb8in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4)) [ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 /\ ar_2 >= ar_3 ] (Comp: 2, Cost: 1) evalcomplexreturnin(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexstop(ar_0, ar_1, ar_2, ar_3, ar_4)) [ ar_1 - 30 >= 0 ] (Comp: 15*ar_0 + 3*ar_1 + 537, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 7)) [ -ar_2 + ar_3 - 1 >= 0 /\ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_3 - 1 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 /\ ar_2 >= 6 ] (Comp: 15*ar_0 + 3*ar_1 + 537, Cost: 1) evalcomplexbb1in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_2 + 2)) [ -ar_2 + ar_3 - 1 >= 0 /\ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_3 - 1 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 /\ 5 >= ar_2 /\ 7 >= ar_2 ] (Comp: 2*ar_0 + 60, Cost: 1) evalcomplexbb9in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb10in(ar_2 - 10, ar_3 + 2, ar_2, ar_3, ar_4)) [ ar_2 - ar_3 >= 0 /\ -ar_1 + ar_3 >= 0 /\ -ar_1 + ar_2 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 ] (Comp: 15*ar_0 + 3*ar_1 + 537, Cost: 1) evalcomplexbb7in(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(evalcomplexbb8in(ar_0, ar_1, ar_4, ar_3 + 1, ar_4)) [ ar_3 - ar_4 + 6 >= 0 /\ ar_2 - ar_4 + 7 >= 0 /\ -ar_2 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 - 2 >= 0 /\ -ar_2 + ar_3 - 1 >= 0 /\ -ar_1 + ar_3 >= 0 /\ -ar_0 + ar_3 - 1 >= 0 /\ -ar_0 + ar_2 >= 0 /\ -ar_1 + 29 >= 0 ] start location: koat_start leaf cost: 0 Complexity upper bound 65*ar_0 + 12*ar_1 + 2304 Time: 0.405 sec (SMT: 0.321 sec) ---------------------------------------- (2) BOUNDS(1, n^1) ---------------------------------------- (3) Loat Proof (FINISHED) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: evalcomplexstart 0: evalcomplexstart -> evalcomplexentryin : [], cost: 1 1: evalcomplexentryin -> evalcomplexbb10in : A'=B, B'=A, [], cost: 1 2: evalcomplexbb10in -> evalcomplexbb8in : C'=A, D'=B, [ 29>=B ], cost: 1 3: evalcomplexbb10in -> evalcomplexreturnin : [ B>=30 ], cost: 1 4: evalcomplexbb8in -> evalcomplexbb1in : [ D>=1+C ], cost: 1 5: evalcomplexbb8in -> evalcomplexbb9in : [ C>=D ], cost: 1 6: evalcomplexbb1in -> evalcomplexbb7in : E'=7+C, [ C>=6 && 2>=C ], cost: 1 7: evalcomplexbb1in -> evalcomplexbb7in : E'=7+C, [ C>=6 ], cost: 1 8: evalcomplexbb1in -> evalcomplexbb6in : E'=7+C, [ C>=6 && C>=3 && 5>=C ], cost: 1 9: evalcomplexbb1in -> evalcomplexbb7in : E'=2+C, [ 5>=C && 7>=C ], cost: 1 10: evalcomplexbb1in -> evalcomplexbb7in : E'=2+C, [ 5>=C && C>=11 ], cost: 1 11: evalcomplexbb1in -> evalcomplexbb6in : E'=2+C, [ 5>=C && C>=8 && 10>=C ], cost: 1 12: evalcomplexbb7in -> evalcomplexbb8in : C'=E, D'=1+D, [], cost: 1 13: evalcomplexbb6in -> evalcomplexbb8in : C'=E, D'=10+D, [], cost: 1 14: evalcomplexbb9in -> evalcomplexbb10in : A'=-10+C, B'=2+D, [], cost: 1 15: evalcomplexreturnin -> evalcomplexstop : [], cost: 1 Removed unreachable and leaf rules: Start location: evalcomplexstart 0: evalcomplexstart -> evalcomplexentryin : [], cost: 1 1: evalcomplexentryin -> evalcomplexbb10in : A'=B, B'=A, [], cost: 1 2: evalcomplexbb10in -> evalcomplexbb8in : C'=A, D'=B, [ 29>=B ], cost: 1 4: evalcomplexbb8in -> evalcomplexbb1in : [ D>=1+C ], cost: 1 5: evalcomplexbb8in -> evalcomplexbb9in : [ C>=D ], cost: 1 6: evalcomplexbb1in -> evalcomplexbb7in : E'=7+C, [ C>=6 && 2>=C ], cost: 1 7: evalcomplexbb1in -> evalcomplexbb7in : E'=7+C, [ C>=6 ], cost: 1 8: evalcomplexbb1in -> evalcomplexbb6in : E'=7+C, [ C>=6 && C>=3 && 5>=C ], cost: 1 9: evalcomplexbb1in -> evalcomplexbb7in : E'=2+C, [ 5>=C && 7>=C ], cost: 1 10: evalcomplexbb1in -> evalcomplexbb7in : E'=2+C, [ 5>=C && C>=11 ], cost: 1 11: evalcomplexbb1in -> evalcomplexbb6in : E'=2+C, [ 5>=C && C>=8 && 10>=C ], cost: 1 12: evalcomplexbb7in -> evalcomplexbb8in : C'=E, D'=1+D, [], cost: 1 13: evalcomplexbb6in -> evalcomplexbb8in : C'=E, D'=10+D, [], cost: 1 14: evalcomplexbb9in -> evalcomplexbb10in : A'=-10+C, B'=2+D, [], cost: 1 Removed rules with unsatisfiable guard: Start location: evalcomplexstart 0: evalcomplexstart -> evalcomplexentryin : [], cost: 1 1: evalcomplexentryin -> evalcomplexbb10in : A'=B, B'=A, [], cost: 1 2: evalcomplexbb10in -> evalcomplexbb8in : C'=A, D'=B, [ 29>=B ], cost: 1 4: evalcomplexbb8in -> evalcomplexbb1in : [ D>=1+C ], cost: 1 5: evalcomplexbb8in -> evalcomplexbb9in : [ C>=D ], cost: 1 7: evalcomplexbb1in -> evalcomplexbb7in : E'=7+C, [ C>=6 ], cost: 1 9: evalcomplexbb1in -> evalcomplexbb7in : E'=2+C, [ 5>=C && 7>=C ], cost: 1 12: evalcomplexbb7in -> evalcomplexbb8in : C'=E, D'=1+D, [], cost: 1 13: evalcomplexbb6in -> evalcomplexbb8in : C'=E, D'=10+D, [], cost: 1 14: evalcomplexbb9in -> evalcomplexbb10in : A'=-10+C, B'=2+D, [], cost: 1 Simplified all rules, resulting in: Start location: evalcomplexstart 0: evalcomplexstart -> evalcomplexentryin : [], cost: 1 1: evalcomplexentryin -> evalcomplexbb10in : A'=B, B'=A, [], cost: 1 2: evalcomplexbb10in -> evalcomplexbb8in : C'=A, D'=B, [ 29>=B ], cost: 1 4: evalcomplexbb8in -> evalcomplexbb1in : [ D>=1+C ], cost: 1 5: evalcomplexbb8in -> evalcomplexbb9in : [ C>=D ], cost: 1 7: evalcomplexbb1in -> evalcomplexbb7in : E'=7+C, [ C>=6 ], cost: 1 9: evalcomplexbb1in -> evalcomplexbb7in : E'=2+C, [ 5>=C ], cost: 1 12: evalcomplexbb7in -> evalcomplexbb8in : C'=E, D'=1+D, [], cost: 1 13: evalcomplexbb6in -> evalcomplexbb8in : C'=E, D'=10+D, [], cost: 1 14: evalcomplexbb9in -> evalcomplexbb10in : A'=-10+C, B'=2+D, [], cost: 1 ### Simplification by acceleration and chaining ### Removed unreachable locations (and leaf rules with constant cost): Start location: evalcomplexstart 0: evalcomplexstart -> evalcomplexentryin : [], cost: 1 1: evalcomplexentryin -> evalcomplexbb10in : A'=B, B'=A, [], cost: 1 2: evalcomplexbb10in -> evalcomplexbb8in : C'=A, D'=B, [ 29>=B ], cost: 1 4: evalcomplexbb8in -> evalcomplexbb1in : [ D>=1+C ], cost: 1 5: evalcomplexbb8in -> evalcomplexbb9in : [ C>=D ], cost: 1 7: evalcomplexbb1in -> evalcomplexbb7in : E'=7+C, [ C>=6 ], cost: 1 9: evalcomplexbb1in -> evalcomplexbb7in : E'=2+C, [ 5>=C ], cost: 1 12: evalcomplexbb7in -> evalcomplexbb8in : C'=E, D'=1+D, [], cost: 1 14: evalcomplexbb9in -> evalcomplexbb10in : A'=-10+C, B'=2+D, [], cost: 1 Eliminated locations (on linear paths): Start location: evalcomplexstart 16: evalcomplexstart -> evalcomplexbb10in : A'=B, B'=A, [], cost: 2 2: evalcomplexbb10in -> evalcomplexbb8in : C'=A, D'=B, [ 29>=B ], cost: 1 4: evalcomplexbb8in -> evalcomplexbb1in : [ D>=1+C ], cost: 1 17: evalcomplexbb8in -> evalcomplexbb10in : A'=-10+C, B'=2+D, [ C>=D ], cost: 2 7: evalcomplexbb1in -> evalcomplexbb7in : E'=7+C, [ C>=6 ], cost: 1 9: evalcomplexbb1in -> evalcomplexbb7in : E'=2+C, [ 5>=C ], cost: 1 12: evalcomplexbb7in -> evalcomplexbb8in : C'=E, D'=1+D, [], cost: 1 Eliminated locations (on tree-shaped paths): Start location: evalcomplexstart 16: evalcomplexstart -> evalcomplexbb10in : A'=B, B'=A, [], cost: 2 2: evalcomplexbb10in -> evalcomplexbb8in : C'=A, D'=B, [ 29>=B ], cost: 1 17: evalcomplexbb8in -> evalcomplexbb10in : A'=-10+C, B'=2+D, [ C>=D ], cost: 2 18: evalcomplexbb8in -> evalcomplexbb7in : E'=7+C, [ D>=1+C && C>=6 ], cost: 2 19: evalcomplexbb8in -> evalcomplexbb7in : E'=2+C, [ D>=1+C && 5>=C ], cost: 2 12: evalcomplexbb7in -> evalcomplexbb8in : C'=E, D'=1+D, [], cost: 1 Eliminated locations (on tree-shaped paths): Start location: evalcomplexstart 16: evalcomplexstart -> evalcomplexbb10in : A'=B, B'=A, [], cost: 2 2: evalcomplexbb10in -> evalcomplexbb8in : C'=A, D'=B, [ 29>=B ], cost: 1 17: evalcomplexbb8in -> evalcomplexbb10in : A'=-10+C, B'=2+D, [ C>=D ], cost: 2 20: evalcomplexbb8in -> evalcomplexbb8in : C'=7+C, D'=1+D, E'=7+C, [ D>=1+C && C>=6 ], cost: 3 21: evalcomplexbb8in -> evalcomplexbb8in : C'=2+C, D'=1+D, E'=2+C, [ D>=1+C && 5>=C ], cost: 3 Accelerating simple loops of location 3. Accelerating the following rules: 20: evalcomplexbb8in -> evalcomplexbb8in : C'=7+C, D'=1+D, E'=7+C, [ D>=1+C && C>=6 ], cost: 3 21: evalcomplexbb8in -> evalcomplexbb8in : C'=2+C, D'=1+D, E'=2+C, [ D>=1+C && 5>=C ], cost: 3 Accelerated rule 20 with metering function meter (where 6*meter==-C+D), yielding the new rule 22. Accelerated rule 21 with NONTERM (after adding C>=D), yielding the new rule 23. Accelerated rule 21 with backward acceleration, yielding the new rule 24. During metering: Instantiating temporary variables by {k==1} Removing the simple loops: 20 21. Accelerated all simple loops using metering functions (where possible): Start location: evalcomplexstart 16: evalcomplexstart -> evalcomplexbb10in : A'=B, B'=A, [], cost: 2 2: evalcomplexbb10in -> evalcomplexbb8in : C'=A, D'=B, [ 29>=B ], cost: 1 17: evalcomplexbb8in -> evalcomplexbb10in : A'=-10+C, B'=2+D, [ C>=D ], cost: 2 22: evalcomplexbb8in -> evalcomplexbb8in : C'=C+7*meter, D'=D+meter, E'=C+7*meter, [ D>=1+C && C>=6 && 6*meter==-C+D && meter>=1 ], cost: 3*meter 23: evalcomplexbb8in -> [10] : [ D>=1+C && 5>=C && C>=D ], cost: INF 24: evalcomplexbb8in -> evalcomplexbb8in : C'=2*k+C, D'=k+D, E'=2*k+C, [ D>=1+C && 5>=C && k>0 && -1+k+D>=-1+2*k+C && 5>=-2+2*k+C ], cost: 3*k Chained accelerated rules (with incoming rules): Start location: evalcomplexstart 16: evalcomplexstart -> evalcomplexbb10in : A'=B, B'=A, [], cost: 2 2: evalcomplexbb10in -> evalcomplexbb8in : C'=A, D'=B, [ 29>=B ], cost: 1 25: evalcomplexbb10in -> evalcomplexbb8in : C'=A+7*meter, D'=meter+B, E'=A+7*meter, [ 29>=B && B>=1+A && A>=6 && 6*meter==-A+B && meter>=1 ], cost: 1+3*meter 26: evalcomplexbb10in -> evalcomplexbb8in : C'=2*k+A, D'=k+B, E'=2*k+A, [ 29>=B && B>=1+A && 5>=A && k>0 && -1+k+B>=-1+2*k+A && 5>=-2+2*k+A ], cost: 1+3*k 17: evalcomplexbb8in -> evalcomplexbb10in : A'=-10+C, B'=2+D, [ C>=D ], cost: 2 Removed unreachable locations (and leaf rules with constant cost): Start location: evalcomplexstart 16: evalcomplexstart -> evalcomplexbb10in : A'=B, B'=A, [], cost: 2 2: evalcomplexbb10in -> evalcomplexbb8in : C'=A, D'=B, [ 29>=B ], cost: 1 25: evalcomplexbb10in -> evalcomplexbb8in : C'=A+7*meter, D'=meter+B, E'=A+7*meter, [ 29>=B && B>=1+A && A>=6 && 6*meter==-A+B && meter>=1 ], cost: 1+3*meter 26: evalcomplexbb10in -> evalcomplexbb8in : C'=2*k+A, D'=k+B, E'=2*k+A, [ 29>=B && B>=1+A && 5>=A && k>0 && -1+k+B>=-1+2*k+A && 5>=-2+2*k+A ], cost: 1+3*k 17: evalcomplexbb8in -> evalcomplexbb10in : A'=-10+C, B'=2+D, [ C>=D ], cost: 2 Eliminated locations (on tree-shaped paths): Start location: evalcomplexstart 16: evalcomplexstart -> evalcomplexbb10in : A'=B, B'=A, [], cost: 2 27: evalcomplexbb10in -> evalcomplexbb10in : A'=-10+A, B'=2+B, C'=A, D'=B, [ 29>=B && A>=B ], cost: 3 28: evalcomplexbb10in -> evalcomplexbb10in : A'=-10+A+7*meter, B'=2+meter+B, C'=A+7*meter, D'=meter+B, E'=A+7*meter, [ 29>=B && B>=1+A && A>=6 && 6*meter==-A+B && meter>=1 ], cost: 3+3*meter 29: evalcomplexbb10in -> evalcomplexbb10in : A'=-10+2*k+A, B'=2+k+B, C'=2*k+A, D'=k+B, E'=2*k+A, [ 29>=B && B>=1+A && 5>=A && k>0 && -1+k+B>=-1+2*k+A && 5>=-2+2*k+A && 2*k+A>=k+B ], cost: 3+3*k Accelerating simple loops of location 2. Simplified some of the simple loops (and removed duplicate rules). Accelerating the following rules: 27: evalcomplexbb10in -> evalcomplexbb10in : A'=-10+A, B'=2+B, C'=A, D'=B, [ 29>=B && A>=B ], cost: 3 28: evalcomplexbb10in -> evalcomplexbb10in : A'=-10+A+7*meter, B'=2+meter+B, C'=A+7*meter, D'=meter+B, E'=A+7*meter, [ 29>=B && B>=1+A && A>=6 && 6*meter==-A+B && meter>=1 ], cost: 3+3*meter 29: evalcomplexbb10in -> evalcomplexbb10in : A'=-10-A+2*B, B'=2-A+2*B, C'=-A+2*B, D'=-A+2*B, E'=-A+2*B, [ 29>=B && B>=1+A && 5>=A && 5>=-2-A+2*B ], cost: 3-3*A+3*B Accelerated rule 27 with metering function meter_1 (where 12*meter_1==A-B) (after adding A<=B), yielding the new rule 30. Accelerated rule 27 with backward acceleration, yielding the new rule 31. During metering: Instantiating temporary variables by {meter==1} Accelerated rule 28 with metering function meter_2 (where 6*meter_2==6+A-B), yielding the new rule 32. Found no metering function for rule 29 (rule is too complicated). During metering: Instantiating temporary variables by {k_1==1,meter==1} Removing the simple loops: 27 28. Accelerated all simple loops using metering functions (where possible): Start location: evalcomplexstart 16: evalcomplexstart -> evalcomplexbb10in : A'=B, B'=A, [], cost: 2 29: evalcomplexbb10in -> evalcomplexbb10in : A'=-10-A+2*B, B'=2-A+2*B, C'=-A+2*B, D'=-A+2*B, E'=-A+2*B, [ 29>=B && B>=1+A && 5>=A && 5>=-2-A+2*B ], cost: 3-3*A+3*B 30: evalcomplexbb10in -> evalcomplexbb10in : A'=A-10*meter_1, B'=2*meter_1+B, C'=10+A-10*meter_1, D'=-2+2*meter_1+B, [ 29>=B && A>=B && A<=B && 12*meter_1==A-B && meter_1>=1 ], cost: 3*meter_1 31: evalcomplexbb10in -> evalcomplexbb10in : A'=-10*k_1+A, B'=2*k_1+B, C'=10-10*k_1+A, D'=-2+2*k_1+B, [ 29>=B && A>=B && k_1>0 && 29>=-2+2*k_1+B && 10-10*k_1+A>=-2+2*k_1+B ], cost: 3*k_1 32: evalcomplexbb10in -> evalcomplexbb10in : A'=A-3*meter_2, B'=3*meter_2+B, C'=10+A-3*meter_2, D'=-2+3*meter_2+B, E'=10+A-3*meter_2, [ 29>=B && A>=6 && 6==-A+B && 6*meter_2==6+A-B && meter_2>=1 ], cost: 6*meter_2 Chained accelerated rules (with incoming rules): Start location: evalcomplexstart 16: evalcomplexstart -> evalcomplexbb10in : A'=B, B'=A, [], cost: 2 33: evalcomplexstart -> evalcomplexbb10in : A'=-10+2*A-B, B'=2+2*A-B, C'=2*A-B, D'=2*A-B, E'=2*A-B, [ 29>=A && A>=1+B && 5>=B && 5>=-2+2*A-B ], cost: 5+3*A-3*B 34: evalcomplexstart -> evalcomplexbb10in : A'=-10*k_1+B, B'=2*k_1+A, C'=10-10*k_1+B, D'=-2+2*k_1+A, [ 29>=A && B>=A && k_1>0 && 29>=-2+2*k_1+A && 10-10*k_1+B>=-2+2*k_1+A ], cost: 2+3*k_1 Removed unreachable locations (and leaf rules with constant cost): Start location: evalcomplexstart 33: evalcomplexstart -> evalcomplexbb10in : A'=-10+2*A-B, B'=2+2*A-B, C'=2*A-B, D'=2*A-B, E'=2*A-B, [ 29>=A && A>=1+B && 5>=B && 5>=-2+2*A-B ], cost: 5+3*A-3*B 34: evalcomplexstart -> evalcomplexbb10in : A'=-10*k_1+B, B'=2*k_1+A, C'=10-10*k_1+B, D'=-2+2*k_1+A, [ 29>=A && B>=A && k_1>0 && 29>=-2+2*k_1+A && 10-10*k_1+B>=-2+2*k_1+A ], cost: 2+3*k_1 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: evalcomplexstart 33: evalcomplexstart -> evalcomplexbb10in : A'=-10+2*A-B, B'=2+2*A-B, C'=2*A-B, D'=2*A-B, E'=2*A-B, [ 29>=A && A>=1+B && 5>=B && 5>=-2+2*A-B ], cost: 5+3*A-3*B 34: evalcomplexstart -> evalcomplexbb10in : A'=-10*k_1+B, B'=2*k_1+A, C'=10-10*k_1+B, D'=-2+2*k_1+A, [ 29>=A && B>=A && k_1>0 && 29>=-2+2*k_1+A && 10-10*k_1+B>=-2+2*k_1+A ], cost: 2+3*k_1 Computing asymptotic complexity for rule 33 Simplified the guard: 33: evalcomplexstart -> evalcomplexbb10in : A'=-10+2*A-B, B'=2+2*A-B, C'=2*A-B, D'=2*A-B, E'=2*A-B, [ A>=1+B && 5>=B && 5>=-2+2*A-B ], cost: 5+3*A-3*B Solved the limit problem by the following transformations: Created initial limit problem: 6-B (+/+!), 5+3*A-3*B (+), 8-2*A+B (+/+!), A-B (+/+!) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {A==-n,B==-2*n} resulting limit problem: [solved] Solution: A / -n B / -2*n Resulting cost 5+3*n has complexity: Poly(n^1) Found new complexity Poly(n^1). Computing asymptotic complexity for rule 34 Simplified the guard: 34: evalcomplexstart -> evalcomplexbb10in : A'=-10*k_1+B, B'=2*k_1+A, C'=10-10*k_1+B, D'=-2+2*k_1+A, [ k_1>0 && 29>=-2+2*k_1+A && 10-10*k_1+B>=-2+2*k_1+A ], cost: 2+3*k_1 Solved the limit problem by the following transformations: Created initial limit problem: 32-2*k_1-A (+/+!), k_1 (+/+!), 13-12*k_1-A+B (+/+!), 2+3*k_1 (+) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {k_1==n,A==-2*n,B==10*n} resulting limit problem: [solved] Solution: k_1 / n A / -2*n B / 10*n Resulting cost 2+3*n has complexity: Poly(n^1) Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Poly(n^1) Cpx degree: 1 Solved cost: 5+3*n Rule cost: 5+3*A-3*B Rule guard: [ A>=1+B && 5>=B && 5>=-2+2*A-B ] WORST_CASE(Omega(n^1),?) ---------------------------------------- (4) BOUNDS(n^1, INF)