4.49/2.07 WORST_CASE(Omega(n^2), O(n^2)) 4.49/2.08 proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat 4.49/2.08 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.49/2.08 4.49/2.08 4.49/2.08 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^2, n^2). 4.49/2.08 4.49/2.08 (0) CpxIntTrs 4.49/2.08 (1) Koat Proof [FINISHED, 100 ms] 4.49/2.08 (2) BOUNDS(1, n^2) 4.49/2.08 (3) Loat Proof [FINISHED, 401 ms] 4.49/2.08 (4) BOUNDS(n^2, INF) 4.49/2.08 4.49/2.08 4.49/2.08 ---------------------------------------- 4.49/2.08 4.49/2.08 (0) 4.49/2.08 Obligation: 4.49/2.08 Complexity Int TRS consisting of the following rules: 4.49/2.08 evalrealselectstart(A, B, C) -> Com_1(evalrealselectentryin(A, B, C)) :|: TRUE 4.49/2.08 evalrealselectentryin(A, B, C) -> Com_1(evalrealselectbb6in(0, B, C)) :|: TRUE 4.49/2.08 evalrealselectbb6in(A, B, C) -> Com_1(evalrealselectbbin(A, B, C)) :|: B >= 2 + A 4.49/2.08 evalrealselectbb6in(A, B, C) -> Com_1(evalrealselectreturnin(A, B, C)) :|: A + 1 >= B 4.49/2.08 evalrealselectbbin(A, B, C) -> Com_1(evalrealselectbb4in(A, B, A + 1)) :|: TRUE 4.49/2.08 evalrealselectbb4in(A, B, C) -> Com_1(evalrealselectbb1in(A, B, C)) :|: B >= C + 1 4.49/2.08 evalrealselectbb4in(A, B, C) -> Com_1(evalrealselectbb5in(A, B, C)) :|: C >= B 4.49/2.08 evalrealselectbb1in(A, B, C) -> Com_1(evalrealselectbb4in(A, B, C + 1)) :|: D >= E + 1 4.49/2.08 evalrealselectbb1in(A, B, C) -> Com_1(evalrealselectbb4in(A, B, C + 1)) :|: E >= D 4.49/2.08 evalrealselectbb5in(A, B, C) -> Com_1(evalrealselectbb6in(A + 1, B, C)) :|: TRUE 4.49/2.08 evalrealselectreturnin(A, B, C) -> Com_1(evalrealselectstop(A, B, C)) :|: TRUE 4.49/2.08 4.49/2.08 The start-symbols are:[evalrealselectstart_3] 4.49/2.08 4.49/2.08 4.49/2.08 ---------------------------------------- 4.49/2.08 4.49/2.08 (1) Koat Proof (FINISHED) 4.49/2.08 YES(?, 72*ar_1 + 9*ar_1^2 + 69) 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Initial complexity problem: 4.49/2.08 4.49/2.08 1: T: 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 4.49/2.08 4.49/2.08 start location: koat_start 4.49/2.08 4.49/2.08 leaf cost: 0 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Repeatedly propagating knowledge in problem 1 produces the following problem: 4.49/2.08 4.49/2.08 2: T: 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 4.49/2.08 4.49/2.08 start location: koat_start 4.49/2.08 4.49/2.08 leaf cost: 0 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 A polynomial rank function with 4.49/2.08 4.49/2.08 Pol(evalrealselectstart) = 2 4.49/2.08 4.49/2.08 Pol(evalrealselectentryin) = 2 4.49/2.08 4.49/2.08 Pol(evalrealselectbb6in) = 2 4.49/2.08 4.49/2.08 Pol(evalrealselectbbin) = 2 4.49/2.08 4.49/2.08 Pol(evalrealselectreturnin) = 1 4.49/2.08 4.49/2.08 Pol(evalrealselectbb4in) = 2 4.49/2.08 4.49/2.08 Pol(evalrealselectbb1in) = 2 4.49/2.08 4.49/2.08 Pol(evalrealselectbb5in) = 2 4.49/2.08 4.49/2.08 Pol(evalrealselectstop) = 0 4.49/2.08 4.49/2.08 Pol(koat_start) = 2 4.49/2.08 4.49/2.08 orients all transitions weakly and the transitions 4.49/2.08 4.49/2.08 evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ] 4.49/2.08 4.49/2.08 strictly and produces the following problem: 4.49/2.08 4.49/2.08 3: T: 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ] 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 4.49/2.08 4.49/2.08 start location: koat_start 4.49/2.08 4.49/2.08 leaf cost: 0 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 A polynomial rank function with 4.49/2.08 4.49/2.08 Pol(evalrealselectstart) = V_2 + 1 4.49/2.08 4.49/2.08 Pol(evalrealselectentryin) = V_2 + 1 4.49/2.08 4.49/2.08 Pol(evalrealselectbb6in) = -V_1 + V_2 + 1 4.49/2.08 4.49/2.08 Pol(evalrealselectbbin) = -V_1 + V_2 4.49/2.08 4.49/2.08 Pol(evalrealselectreturnin) = -V_1 + V_2 4.49/2.08 4.49/2.08 Pol(evalrealselectbb4in) = -V_1 + V_2 4.49/2.08 4.49/2.08 Pol(evalrealselectbb1in) = -V_1 + V_2 4.49/2.08 4.49/2.08 Pol(evalrealselectbb5in) = -V_1 + V_2 4.49/2.08 4.49/2.08 Pol(evalrealselectstop) = -V_1 + V_2 4.49/2.08 4.49/2.08 Pol(koat_start) = V_2 + 1 4.49/2.08 4.49/2.08 orients all transitions weakly and the transition 4.49/2.08 4.49/2.08 evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ] 4.49/2.08 4.49/2.08 strictly and produces the following problem: 4.49/2.08 4.49/2.08 4: T: 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: ar_1 + 1, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ] 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 4.49/2.08 4.49/2.08 start location: koat_start 4.49/2.08 4.49/2.08 leaf cost: 0 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Repeatedly propagating knowledge in problem 4 produces the following problem: 4.49/2.08 4.49/2.08 5: T: 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: ar_1 + 1, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ] 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ar_1 + 1, Cost: 1) evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 4.49/2.08 4.49/2.08 start location: koat_start 4.49/2.08 4.49/2.08 leaf cost: 0 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 A polynomial rank function with 4.49/2.08 4.49/2.08 Pol(evalrealselectbb5in) = 1 4.49/2.08 4.49/2.08 Pol(evalrealselectbb6in) = 0 4.49/2.08 4.49/2.08 Pol(evalrealselectbb4in) = 2 4.49/2.08 4.49/2.08 Pol(evalrealselectbb1in) = 2 4.49/2.08 4.49/2.08 and size complexities 4.49/2.08 4.49/2.08 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-0) = ar_0 4.49/2.08 4.49/2.08 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-2) = ar_2 4.49/2.08 4.49/2.08 S("evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2))", 0-0) = ? 4.49/2.08 4.49/2.08 S("evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2))", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2))", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2))", 0-0) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2))", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2))", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ]", 0-0) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ]", 0-0) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ]", 0-0) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ]", 0-0) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1))", 0-0) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1))", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1))", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ]", 0-0) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ]", 0-0) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2))", 0-0) = 0 4.49/2.08 4.49/2.08 S("evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2))", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2))", 0-2) = ar_2 4.49/2.08 4.49/2.08 S("evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2))", 0-0) = ar_0 4.49/2.08 4.49/2.08 S("evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2))", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2))", 0-2) = ar_2 4.49/2.08 4.49/2.08 orients the transitions 4.49/2.08 4.49/2.08 evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2)) 4.49/2.08 4.49/2.08 evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ] 4.49/2.08 4.49/2.08 evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ] 4.49/2.08 4.49/2.08 evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ] 4.49/2.08 4.49/2.08 evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ] 4.49/2.08 4.49/2.08 weakly and the transitions 4.49/2.08 4.49/2.08 evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2)) 4.49/2.08 4.49/2.08 evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ] 4.49/2.08 4.49/2.08 strictly and produces the following problem: 4.49/2.08 4.49/2.08 6: T: 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: ar_1 + 1, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ] 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ar_1 + 1, Cost: 1) evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1)) 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ] 4.49/2.08 4.49/2.08 (Comp: 2*ar_1 + 2, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ] 4.49/2.08 4.49/2.08 (Comp: 2*ar_1 + 2, Cost: 1) evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 4.49/2.08 4.49/2.08 start location: koat_start 4.49/2.08 4.49/2.08 leaf cost: 0 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 A polynomial rank function with 4.49/2.08 4.49/2.08 Pol(evalrealselectbb4in) = V_2 - V_3 + 1 4.49/2.08 4.49/2.08 Pol(evalrealselectbb1in) = V_2 - V_3 4.49/2.08 4.49/2.08 and size complexities 4.49/2.08 4.49/2.08 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-0) = ar_0 4.49/2.08 4.49/2.08 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ]", 0-2) = ar_2 4.49/2.08 4.49/2.08 S("evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2))", 0-0) = 2*ar_1 + 32 4.49/2.08 4.49/2.08 S("evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2))", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2))", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2))", 0-0) = 2*ar_1 + 8 4.49/2.08 4.49/2.08 S("evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2))", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2))", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ]", 0-0) = 2*ar_1 + 8 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ]", 0-0) = 2*ar_1 + 8 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ]", 0-0) = 2*ar_1 + 8 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ]", 0-0) = 2*ar_1 + 8 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1))", 0-0) = 2*ar_1 + 8 4.49/2.08 4.49/2.08 S("evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1))", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1))", 0-2) = 2*ar_1 + 18 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ]", 0-0) = 2*ar_1 + 16 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ]", 0-0) = 2*ar_1 + 8 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ]", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ]", 0-2) = ? 4.49/2.08 4.49/2.08 S("evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2))", 0-0) = 0 4.49/2.08 4.49/2.08 S("evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2))", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2))", 0-2) = ar_2 4.49/2.08 4.49/2.08 S("evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2))", 0-0) = ar_0 4.49/2.08 4.49/2.08 S("evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2))", 0-1) = ar_1 4.49/2.08 4.49/2.08 S("evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2))", 0-2) = ar_2 4.49/2.08 4.49/2.08 orients the transitions 4.49/2.08 4.49/2.08 evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ] 4.49/2.08 4.49/2.08 evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ] 4.49/2.08 4.49/2.08 evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ] 4.49/2.08 4.49/2.08 weakly and the transition 4.49/2.08 4.49/2.08 evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ] 4.49/2.08 4.49/2.08 strictly and produces the following problem: 4.49/2.08 4.49/2.08 7: T: 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: ar_1 + 1, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ] 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ar_1 + 1, Cost: 1) evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1)) 4.49/2.08 4.49/2.08 (Comp: 3*ar_1^2 + 22*ar_1 + 19, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ] 4.49/2.08 4.49/2.08 (Comp: 2*ar_1 + 2, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ] 4.49/2.08 4.49/2.08 (Comp: ?, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ] 4.49/2.08 4.49/2.08 (Comp: 2*ar_1 + 2, Cost: 1) evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 4.49/2.08 4.49/2.08 start location: koat_start 4.49/2.08 4.49/2.08 leaf cost: 0 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Repeatedly propagating knowledge in problem 7 produces the following problem: 4.49/2.08 4.49/2.08 8: T: 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectstart(ar_0, ar_1, ar_2) -> Com_1(evalrealselectentryin(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 1) evalrealselectentryin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: ar_1 + 1, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbbin(ar_0, ar_1, ar_2)) [ ar_1 >= ar_0 + 2 ] 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectbb6in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectreturnin(ar_0, ar_1, ar_2)) [ ar_0 + 1 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: ar_1 + 1, Cost: 1) evalrealselectbbin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_0 + 1)) 4.49/2.08 4.49/2.08 (Comp: 3*ar_1^2 + 22*ar_1 + 19, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb1in(ar_0, ar_1, ar_2)) [ ar_1 >= ar_2 + 1 ] 4.49/2.08 4.49/2.08 (Comp: 2*ar_1 + 2, Cost: 1) evalrealselectbb4in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb5in(ar_0, ar_1, ar_2)) [ ar_2 >= ar_1 ] 4.49/2.08 4.49/2.08 (Comp: 3*ar_1^2 + 22*ar_1 + 19, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e + 1 ] 4.49/2.08 4.49/2.08 (Comp: 3*ar_1^2 + 22*ar_1 + 19, Cost: 1) evalrealselectbb1in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb4in(ar_0, ar_1, ar_2 + 1)) [ d >= e ] 4.49/2.08 4.49/2.08 (Comp: 2*ar_1 + 2, Cost: 1) evalrealselectbb5in(ar_0, ar_1, ar_2) -> Com_1(evalrealselectbb6in(ar_0 + 1, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 2, Cost: 1) evalrealselectreturnin(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstop(ar_0, ar_1, ar_2)) 4.49/2.08 4.49/2.08 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2) -> Com_1(evalrealselectstart(ar_0, ar_1, ar_2)) [ 0 <= 0 ] 4.49/2.08 4.49/2.08 start location: koat_start 4.49/2.08 4.49/2.08 leaf cost: 0 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Complexity upper bound 72*ar_1 + 9*ar_1^2 + 69 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Time: 0.121 sec (SMT: 0.105 sec) 4.49/2.08 4.49/2.08 4.49/2.08 ---------------------------------------- 4.49/2.08 4.49/2.08 (2) 4.49/2.08 BOUNDS(1, n^2) 4.49/2.08 4.49/2.08 ---------------------------------------- 4.49/2.08 4.49/2.08 (3) Loat Proof (FINISHED) 4.49/2.08 4.49/2.08 4.49/2.08 ### Pre-processing the ITS problem ### 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Initial linear ITS problem 4.49/2.08 4.49/2.08 Start location: evalrealselectstart 4.49/2.08 4.49/2.08 0: evalrealselectstart -> evalrealselectentryin : [], cost: 1 4.49/2.08 4.49/2.08 1: evalrealselectentryin -> evalrealselectbb6in : A'=0, [], cost: 1 4.49/2.08 4.49/2.08 2: evalrealselectbb6in -> evalrealselectbbin : [ B>=2+A ], cost: 1 4.49/2.08 4.49/2.08 3: evalrealselectbb6in -> evalrealselectreturnin : [ 1+A>=B ], cost: 1 4.49/2.08 4.49/2.08 4: evalrealselectbbin -> evalrealselectbb4in : C'=1+A, [], cost: 1 4.49/2.08 4.49/2.08 5: evalrealselectbb4in -> evalrealselectbb1in : [ B>=1+C ], cost: 1 4.49/2.08 4.49/2.08 6: evalrealselectbb4in -> evalrealselectbb5in : [ C>=B ], cost: 1 4.49/2.08 4.49/2.08 7: evalrealselectbb1in -> evalrealselectbb4in : C'=1+C, [ free>=1+free_1 ], cost: 1 4.49/2.08 4.49/2.08 8: evalrealselectbb1in -> evalrealselectbb4in : C'=1+C, [ free_2>=free_3 ], cost: 1 4.49/2.08 4.49/2.08 9: evalrealselectbb5in -> evalrealselectbb6in : A'=1+A, [], cost: 1 4.49/2.08 4.49/2.08 10: evalrealselectreturnin -> evalrealselectstop : [], cost: 1 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Removed unreachable and leaf rules: 4.49/2.08 4.49/2.08 Start location: evalrealselectstart 4.49/2.08 4.49/2.08 0: evalrealselectstart -> evalrealselectentryin : [], cost: 1 4.49/2.08 4.49/2.08 1: evalrealselectentryin -> evalrealselectbb6in : A'=0, [], cost: 1 4.49/2.08 4.49/2.08 2: evalrealselectbb6in -> evalrealselectbbin : [ B>=2+A ], cost: 1 4.49/2.08 4.49/2.08 4: evalrealselectbbin -> evalrealselectbb4in : C'=1+A, [], cost: 1 4.49/2.08 4.49/2.08 5: evalrealselectbb4in -> evalrealselectbb1in : [ B>=1+C ], cost: 1 4.49/2.08 4.49/2.08 6: evalrealselectbb4in -> evalrealselectbb5in : [ C>=B ], cost: 1 4.49/2.08 4.49/2.08 7: evalrealselectbb1in -> evalrealselectbb4in : C'=1+C, [ free>=1+free_1 ], cost: 1 4.49/2.08 4.49/2.08 8: evalrealselectbb1in -> evalrealselectbb4in : C'=1+C, [ free_2>=free_3 ], cost: 1 4.49/2.08 4.49/2.08 9: evalrealselectbb5in -> evalrealselectbb6in : A'=1+A, [], cost: 1 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Simplified all rules, resulting in: 4.49/2.08 4.49/2.08 Start location: evalrealselectstart 4.49/2.08 4.49/2.08 0: evalrealselectstart -> evalrealselectentryin : [], cost: 1 4.49/2.08 4.49/2.08 1: evalrealselectentryin -> evalrealselectbb6in : A'=0, [], cost: 1 4.49/2.08 4.49/2.08 2: evalrealselectbb6in -> evalrealselectbbin : [ B>=2+A ], cost: 1 4.49/2.08 4.49/2.08 4: evalrealselectbbin -> evalrealselectbb4in : C'=1+A, [], cost: 1 4.49/2.08 4.49/2.08 5: evalrealselectbb4in -> evalrealselectbb1in : [ B>=1+C ], cost: 1 4.49/2.08 4.49/2.08 6: evalrealselectbb4in -> evalrealselectbb5in : [ C>=B ], cost: 1 4.49/2.08 4.49/2.08 8: evalrealselectbb1in -> evalrealselectbb4in : C'=1+C, [], cost: 1 4.49/2.08 4.49/2.08 9: evalrealselectbb5in -> evalrealselectbb6in : A'=1+A, [], cost: 1 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 ### Simplification by acceleration and chaining ### 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Eliminated locations (on linear paths): 4.49/2.08 4.49/2.08 Start location: evalrealselectstart 4.49/2.08 4.49/2.08 11: evalrealselectstart -> evalrealselectbb6in : A'=0, [], cost: 2 4.49/2.08 4.49/2.08 12: evalrealselectbb6in -> evalrealselectbb4in : C'=1+A, [ B>=2+A ], cost: 2 4.49/2.08 4.49/2.08 13: evalrealselectbb4in -> evalrealselectbb4in : C'=1+C, [ B>=1+C ], cost: 2 4.49/2.08 4.49/2.08 14: evalrealselectbb4in -> evalrealselectbb6in : A'=1+A, [ C>=B ], cost: 2 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Accelerating simple loops of location 4. 4.49/2.08 4.49/2.08 Accelerating the following rules: 4.49/2.08 4.49/2.08 13: evalrealselectbb4in -> evalrealselectbb4in : C'=1+C, [ B>=1+C ], cost: 2 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Accelerated rule 13 with metering function -C+B, yielding the new rule 15. 4.49/2.08 4.49/2.08 Removing the simple loops: 13. 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Accelerated all simple loops using metering functions (where possible): 4.49/2.08 4.49/2.08 Start location: evalrealselectstart 4.49/2.08 4.49/2.08 11: evalrealselectstart -> evalrealselectbb6in : A'=0, [], cost: 2 4.49/2.08 4.49/2.08 12: evalrealselectbb6in -> evalrealselectbb4in : C'=1+A, [ B>=2+A ], cost: 2 4.49/2.08 4.49/2.08 14: evalrealselectbb4in -> evalrealselectbb6in : A'=1+A, [ C>=B ], cost: 2 4.49/2.08 4.49/2.08 15: evalrealselectbb4in -> evalrealselectbb4in : C'=B, [ B>=1+C ], cost: -2*C+2*B 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Chained accelerated rules (with incoming rules): 4.49/2.08 4.49/2.08 Start location: evalrealselectstart 4.49/2.08 4.49/2.08 11: evalrealselectstart -> evalrealselectbb6in : A'=0, [], cost: 2 4.49/2.08 4.49/2.08 12: evalrealselectbb6in -> evalrealselectbb4in : C'=1+A, [ B>=2+A ], cost: 2 4.49/2.08 4.49/2.08 16: evalrealselectbb6in -> evalrealselectbb4in : C'=B, [ B>=2+A ], cost: -2*A+2*B 4.49/2.08 4.49/2.08 14: evalrealselectbb4in -> evalrealselectbb6in : A'=1+A, [ C>=B ], cost: 2 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Eliminated locations (on tree-shaped paths): 4.49/2.08 4.49/2.08 Start location: evalrealselectstart 4.49/2.08 4.49/2.08 11: evalrealselectstart -> evalrealselectbb6in : A'=0, [], cost: 2 4.49/2.08 4.49/2.08 17: evalrealselectbb6in -> evalrealselectbb6in : A'=1+A, C'=B, [ B>=2+A ], cost: 2-2*A+2*B 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Accelerating simple loops of location 2. 4.49/2.08 4.49/2.08 Accelerating the following rules: 4.49/2.08 4.49/2.08 17: evalrealselectbb6in -> evalrealselectbb6in : A'=1+A, C'=B, [ B>=2+A ], cost: 2-2*A+2*B 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Accelerated rule 17 with metering function -1-A+B, yielding the new rule 18. 4.49/2.08 4.49/2.08 Removing the simple loops: 17. 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Accelerated all simple loops using metering functions (where possible): 4.49/2.08 4.49/2.08 Start location: evalrealselectstart 4.49/2.08 4.49/2.08 11: evalrealselectstart -> evalrealselectbb6in : A'=0, [], cost: 2 4.49/2.08 4.49/2.08 18: evalrealselectbb6in -> evalrealselectbb6in : A'=-1+B, C'=B, [ B>=2+A ], cost: -3-(1+A-B)^2-3*A-2*(1+A-B)*B+2*A*(1+A-B)+3*B 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Chained accelerated rules (with incoming rules): 4.49/2.08 4.49/2.08 Start location: evalrealselectstart 4.49/2.08 4.49/2.08 11: evalrealselectstart -> evalrealselectbb6in : A'=0, [], cost: 2 4.49/2.08 4.49/2.08 19: evalrealselectstart -> evalrealselectbb6in : A'=-1+B, C'=B, [ B>=2 ], cost: -1+2*(-1+B)*B-(-1+B)^2+3*B 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Removed unreachable locations (and leaf rules with constant cost): 4.49/2.08 4.49/2.08 Start location: evalrealselectstart 4.49/2.08 4.49/2.08 19: evalrealselectstart -> evalrealselectbb6in : A'=-1+B, C'=B, [ B>=2 ], cost: -1+2*(-1+B)*B-(-1+B)^2+3*B 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 ### Computing asymptotic complexity ### 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Fully simplified ITS problem 4.49/2.08 4.49/2.08 Start location: evalrealselectstart 4.49/2.08 4.49/2.08 19: evalrealselectstart -> evalrealselectbb6in : A'=-1+B, C'=B, [ B>=2 ], cost: -1+2*(-1+B)*B-(-1+B)^2+3*B 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Computing asymptotic complexity for rule 19 4.49/2.08 4.49/2.08 Solved the limit problem by the following transformations: 4.49/2.08 4.49/2.08 Created initial limit problem: 4.49/2.08 4.49/2.08 -2+B^2+3*B (+), -1+B (+/+!) [not solved] 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 removing all constraints (solved by SMT) 4.49/2.08 4.49/2.08 resulting limit problem: [solved] 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 applying transformation rule (C) using substitution {B==n} 4.49/2.08 4.49/2.08 resulting limit problem: 4.49/2.08 4.49/2.08 [solved] 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Solution: 4.49/2.08 4.49/2.08 B / n 4.49/2.08 4.49/2.08 Resulting cost -2+3*n+n^2 has complexity: Poly(n^2) 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Found new complexity Poly(n^2). 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 Obtained the following overall complexity (w.r.t. the length of the input n): 4.49/2.08 4.49/2.08 Complexity: Poly(n^2) 4.49/2.08 4.49/2.08 Cpx degree: 2 4.49/2.08 4.49/2.08 Solved cost: -2+3*n+n^2 4.49/2.08 4.49/2.08 Rule cost: -1+2*(-1+B)*B-(-1+B)^2+3*B 4.49/2.08 4.49/2.08 Rule guard: [ B>=2 ] 4.49/2.08 4.49/2.08 4.49/2.08 4.49/2.08 WORST_CASE(Omega(n^2),?) 4.49/2.08 4.49/2.08 4.49/2.08 ---------------------------------------- 4.49/2.08 4.49/2.08 (4) 4.49/2.08 BOUNDS(n^2, INF) 4.59/2.11 EOF