3.68/1.99 WORST_CASE(Omega(n^1), O(n^1)) 3.68/2.00 proof of /export/starexec/sandbox/benchmark/theBenchmark.koat 3.68/2.00 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.68/2.00 3.68/2.00 3.68/2.00 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^1, n^1). 3.68/2.00 3.68/2.00 (0) CpxIntTrs 3.68/2.00 (1) Koat Proof [FINISHED, 9 ms] 3.68/2.00 (2) BOUNDS(1, n^1) 3.68/2.00 (3) Loat Proof [FINISHED, 324 ms] 3.68/2.00 (4) BOUNDS(n^1, INF) 3.68/2.00 3.68/2.00 3.68/2.00 ---------------------------------------- 3.68/2.00 3.68/2.00 (0) 3.68/2.00 Obligation: 3.68/2.00 Complexity Int TRS consisting of the following rules: 3.68/2.00 evalrandom1dstart(A, B) -> Com_1(evalrandom1dentryin(A, B)) :|: TRUE 3.68/2.00 evalrandom1dentryin(A, B) -> Com_1(evalrandom1dbb5in(A, 1)) :|: A >= 1 3.68/2.00 evalrandom1dentryin(A, B) -> Com_1(evalrandom1dreturnin(A, B)) :|: 0 >= A 3.68/2.00 evalrandom1dbb5in(A, B) -> Com_1(evalrandom1dbb1in(A, B)) :|: A >= B 3.68/2.00 evalrandom1dbb5in(A, B) -> Com_1(evalrandom1dreturnin(A, B)) :|: B >= A + 1 3.68/2.00 evalrandom1dbb1in(A, B) -> Com_1(evalrandom1dbb5in(A, B + 1)) :|: 0 >= C + 1 3.68/2.00 evalrandom1dbb1in(A, B) -> Com_1(evalrandom1dbb5in(A, B + 1)) :|: C >= 1 3.68/2.00 evalrandom1dbb1in(A, B) -> Com_1(evalrandom1dbb5in(A, B + 1)) :|: TRUE 3.68/2.00 evalrandom1dreturnin(A, B) -> Com_1(evalrandom1dstop(A, B)) :|: TRUE 3.68/2.00 3.68/2.00 The start-symbols are:[evalrandom1dstart_2] 3.68/2.00 3.68/2.00 3.68/2.00 ---------------------------------------- 3.68/2.00 3.68/2.00 (1) Koat Proof (FINISHED) 3.68/2.00 YES(?, 4*ar_0 + 15) 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Initial complexity problem: 3.68/2.00 3.68/2.00 1: T: 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dstart(ar_0, ar_1) -> Com_1(evalrandom1dentryin(ar_0, ar_1)) 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, 1)) [ ar_0 >= 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ 0 >= ar_0 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dbb1in(ar_0, ar_1)) [ ar_0 >= ar_1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ ar_1 >= ar_0 + 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ 0 >= c + 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ c >= 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dreturnin(ar_0, ar_1) -> Com_1(evalrandom1dstop(ar_0, ar_1)) 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalrandom1dstart(ar_0, ar_1)) [ 0 <= 0 ] 3.68/2.00 3.68/2.00 start location: koat_start 3.68/2.00 3.68/2.00 leaf cost: 0 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Repeatedly propagating knowledge in problem 1 produces the following problem: 3.68/2.00 3.68/2.00 2: T: 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dstart(ar_0, ar_1) -> Com_1(evalrandom1dentryin(ar_0, ar_1)) 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, 1)) [ ar_0 >= 1 ] 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ 0 >= ar_0 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dbb1in(ar_0, ar_1)) [ ar_0 >= ar_1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ ar_1 >= ar_0 + 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ 0 >= c + 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ c >= 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dreturnin(ar_0, ar_1) -> Com_1(evalrandom1dstop(ar_0, ar_1)) 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalrandom1dstart(ar_0, ar_1)) [ 0 <= 0 ] 3.68/2.00 3.68/2.00 start location: koat_start 3.68/2.00 3.68/2.00 leaf cost: 0 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 A polynomial rank function with 3.68/2.00 3.68/2.00 Pol(evalrandom1dstart) = 2 3.68/2.00 3.68/2.00 Pol(evalrandom1dentryin) = 2 3.68/2.00 3.68/2.00 Pol(evalrandom1dbb5in) = 2 3.68/2.00 3.68/2.00 Pol(evalrandom1dreturnin) = 1 3.68/2.00 3.68/2.00 Pol(evalrandom1dbb1in) = 2 3.68/2.00 3.68/2.00 Pol(evalrandom1dstop) = 0 3.68/2.00 3.68/2.00 Pol(koat_start) = 2 3.68/2.00 3.68/2.00 orients all transitions weakly and the transitions 3.68/2.00 3.68/2.00 evalrandom1dreturnin(ar_0, ar_1) -> Com_1(evalrandom1dstop(ar_0, ar_1)) 3.68/2.00 3.68/2.00 evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ ar_1 >= ar_0 + 1 ] 3.68/2.00 3.68/2.00 strictly and produces the following problem: 3.68/2.00 3.68/2.00 3: T: 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dstart(ar_0, ar_1) -> Com_1(evalrandom1dentryin(ar_0, ar_1)) 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, 1)) [ ar_0 >= 1 ] 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ 0 >= ar_0 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dbb1in(ar_0, ar_1)) [ ar_0 >= ar_1 ] 3.68/2.00 3.68/2.00 (Comp: 2, Cost: 1) evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ ar_1 >= ar_0 + 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ 0 >= c + 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ c >= 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) 3.68/2.00 3.68/2.00 (Comp: 2, Cost: 1) evalrandom1dreturnin(ar_0, ar_1) -> Com_1(evalrandom1dstop(ar_0, ar_1)) 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalrandom1dstart(ar_0, ar_1)) [ 0 <= 0 ] 3.68/2.00 3.68/2.00 start location: koat_start 3.68/2.00 3.68/2.00 leaf cost: 0 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 A polynomial rank function with 3.68/2.00 3.68/2.00 Pol(evalrandom1dbb5in) = V_1 - V_2 + 1 3.68/2.00 3.68/2.00 Pol(evalrandom1dbb1in) = V_1 - V_2 3.68/2.00 3.68/2.00 and size complexities 3.68/2.00 3.68/2.00 S("koat_start(ar_0, ar_1) -> Com_1(evalrandom1dstart(ar_0, ar_1)) [ 0 <= 0 ]", 0-0) = ar_0 3.68/2.00 3.68/2.00 S("koat_start(ar_0, ar_1) -> Com_1(evalrandom1dstart(ar_0, ar_1)) [ 0 <= 0 ]", 0-1) = ar_1 3.68/2.00 3.68/2.00 S("evalrandom1dreturnin(ar_0, ar_1) -> Com_1(evalrandom1dstop(ar_0, ar_1))", 0-0) = ar_0 3.68/2.00 3.68/2.00 S("evalrandom1dreturnin(ar_0, ar_1) -> Com_1(evalrandom1dstop(ar_0, ar_1))", 0-1) = ? 3.68/2.00 3.68/2.00 S("evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1))", 0-0) = ar_0 3.68/2.00 3.68/2.00 S("evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1))", 0-1) = ? 3.68/2.00 3.68/2.00 S("evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ c >= 1 ]", 0-0) = ar_0 3.68/2.00 3.68/2.00 S("evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ c >= 1 ]", 0-1) = ? 3.68/2.00 3.68/2.00 S("evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ 0 >= c + 1 ]", 0-0) = ar_0 3.68/2.00 3.68/2.00 S("evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ 0 >= c + 1 ]", 0-1) = ? 3.68/2.00 3.68/2.00 S("evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ ar_1 >= ar_0 + 1 ]", 0-0) = ar_0 3.68/2.00 3.68/2.00 S("evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ ar_1 >= ar_0 + 1 ]", 0-1) = ? 3.68/2.00 3.68/2.00 S("evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dbb1in(ar_0, ar_1)) [ ar_0 >= ar_1 ]", 0-0) = ar_0 3.68/2.00 3.68/2.00 S("evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dbb1in(ar_0, ar_1)) [ ar_0 >= ar_1 ]", 0-1) = ? 3.68/2.00 3.68/2.00 S("evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ 0 >= ar_0 ]", 0-0) = ar_0 3.68/2.00 3.68/2.00 S("evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ 0 >= ar_0 ]", 0-1) = ar_1 3.68/2.00 3.68/2.00 S("evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, 1)) [ ar_0 >= 1 ]", 0-0) = ar_0 3.68/2.00 3.68/2.00 S("evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, 1)) [ ar_0 >= 1 ]", 0-1) = 1 3.68/2.00 3.68/2.00 S("evalrandom1dstart(ar_0, ar_1) -> Com_1(evalrandom1dentryin(ar_0, ar_1))", 0-0) = ar_0 3.68/2.00 3.68/2.00 S("evalrandom1dstart(ar_0, ar_1) -> Com_1(evalrandom1dentryin(ar_0, ar_1))", 0-1) = ar_1 3.68/2.00 3.68/2.00 orients the transitions 3.68/2.00 3.68/2.00 evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dbb1in(ar_0, ar_1)) [ ar_0 >= ar_1 ] 3.68/2.00 3.68/2.00 evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ c >= 1 ] 3.68/2.00 3.68/2.00 evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ 0 >= c + 1 ] 3.68/2.00 3.68/2.00 evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) 3.68/2.00 3.68/2.00 weakly and the transition 3.68/2.00 3.68/2.00 evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dbb1in(ar_0, ar_1)) [ ar_0 >= ar_1 ] 3.68/2.00 3.68/2.00 strictly and produces the following problem: 3.68/2.00 3.68/2.00 4: T: 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dstart(ar_0, ar_1) -> Com_1(evalrandom1dentryin(ar_0, ar_1)) 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, 1)) [ ar_0 >= 1 ] 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ 0 >= ar_0 ] 3.68/2.00 3.68/2.00 (Comp: ar_0 + 2, Cost: 1) evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dbb1in(ar_0, ar_1)) [ ar_0 >= ar_1 ] 3.68/2.00 3.68/2.00 (Comp: 2, Cost: 1) evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ ar_1 >= ar_0 + 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ 0 >= c + 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ c >= 1 ] 3.68/2.00 3.68/2.00 (Comp: ?, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) 3.68/2.00 3.68/2.00 (Comp: 2, Cost: 1) evalrandom1dreturnin(ar_0, ar_1) -> Com_1(evalrandom1dstop(ar_0, ar_1)) 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalrandom1dstart(ar_0, ar_1)) [ 0 <= 0 ] 3.68/2.00 3.68/2.00 start location: koat_start 3.68/2.00 3.68/2.00 leaf cost: 0 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Repeatedly propagating knowledge in problem 4 produces the following problem: 3.68/2.00 3.68/2.00 5: T: 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dstart(ar_0, ar_1) -> Com_1(evalrandom1dentryin(ar_0, ar_1)) 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, 1)) [ ar_0 >= 1 ] 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 1) evalrandom1dentryin(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ 0 >= ar_0 ] 3.68/2.00 3.68/2.00 (Comp: ar_0 + 2, Cost: 1) evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dbb1in(ar_0, ar_1)) [ ar_0 >= ar_1 ] 3.68/2.00 3.68/2.00 (Comp: 2, Cost: 1) evalrandom1dbb5in(ar_0, ar_1) -> Com_1(evalrandom1dreturnin(ar_0, ar_1)) [ ar_1 >= ar_0 + 1 ] 3.68/2.00 3.68/2.00 (Comp: ar_0 + 2, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ 0 >= c + 1 ] 3.68/2.00 3.68/2.00 (Comp: ar_0 + 2, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) [ c >= 1 ] 3.68/2.00 3.68/2.00 (Comp: ar_0 + 2, Cost: 1) evalrandom1dbb1in(ar_0, ar_1) -> Com_1(evalrandom1dbb5in(ar_0, ar_1 + 1)) 3.68/2.00 3.68/2.00 (Comp: 2, Cost: 1) evalrandom1dreturnin(ar_0, ar_1) -> Com_1(evalrandom1dstop(ar_0, ar_1)) 3.68/2.00 3.68/2.00 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalrandom1dstart(ar_0, ar_1)) [ 0 <= 0 ] 3.68/2.00 3.68/2.00 start location: koat_start 3.68/2.00 3.68/2.00 leaf cost: 0 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Complexity upper bound 4*ar_0 + 15 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Time: 0.076 sec (SMT: 0.069 sec) 3.68/2.00 3.68/2.00 3.68/2.00 ---------------------------------------- 3.68/2.00 3.68/2.00 (2) 3.68/2.00 BOUNDS(1, n^1) 3.68/2.00 3.68/2.00 ---------------------------------------- 3.68/2.00 3.68/2.00 (3) Loat Proof (FINISHED) 3.68/2.00 3.68/2.00 3.68/2.00 ### Pre-processing the ITS problem ### 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Initial linear ITS problem 3.68/2.00 3.68/2.00 Start location: evalrandom1dstart 3.68/2.00 3.68/2.00 0: evalrandom1dstart -> evalrandom1dentryin : [], cost: 1 3.68/2.00 3.68/2.00 1: evalrandom1dentryin -> evalrandom1dbb5in : B'=1, [ A>=1 ], cost: 1 3.68/2.00 3.68/2.00 2: evalrandom1dentryin -> evalrandom1dreturnin : [ 0>=A ], cost: 1 3.68/2.00 3.68/2.00 3: evalrandom1dbb5in -> evalrandom1dbb1in : [ A>=B ], cost: 1 3.68/2.00 3.68/2.00 4: evalrandom1dbb5in -> evalrandom1dreturnin : [ B>=1+A ], cost: 1 3.68/2.00 3.68/2.00 5: evalrandom1dbb1in -> evalrandom1dbb5in : B'=1+B, [ 0>=1+free ], cost: 1 3.68/2.00 3.68/2.00 6: evalrandom1dbb1in -> evalrandom1dbb5in : B'=1+B, [ free_1>=1 ], cost: 1 3.68/2.00 3.68/2.00 7: evalrandom1dbb1in -> evalrandom1dbb5in : B'=1+B, [], cost: 1 3.68/2.00 3.68/2.00 8: evalrandom1dreturnin -> evalrandom1dstop : [], cost: 1 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Removed unreachable and leaf rules: 3.68/2.00 3.68/2.00 Start location: evalrandom1dstart 3.68/2.00 3.68/2.00 0: evalrandom1dstart -> evalrandom1dentryin : [], cost: 1 3.68/2.00 3.68/2.00 1: evalrandom1dentryin -> evalrandom1dbb5in : B'=1, [ A>=1 ], cost: 1 3.68/2.00 3.68/2.00 3: evalrandom1dbb5in -> evalrandom1dbb1in : [ A>=B ], cost: 1 3.68/2.00 3.68/2.00 5: evalrandom1dbb1in -> evalrandom1dbb5in : B'=1+B, [ 0>=1+free ], cost: 1 3.68/2.00 3.68/2.00 6: evalrandom1dbb1in -> evalrandom1dbb5in : B'=1+B, [ free_1>=1 ], cost: 1 3.68/2.00 3.68/2.00 7: evalrandom1dbb1in -> evalrandom1dbb5in : B'=1+B, [], cost: 1 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Simplified all rules, resulting in: 3.68/2.00 3.68/2.00 Start location: evalrandom1dstart 3.68/2.00 3.68/2.00 0: evalrandom1dstart -> evalrandom1dentryin : [], cost: 1 3.68/2.00 3.68/2.00 1: evalrandom1dentryin -> evalrandom1dbb5in : B'=1, [ A>=1 ], cost: 1 3.68/2.00 3.68/2.00 3: evalrandom1dbb5in -> evalrandom1dbb1in : [ A>=B ], cost: 1 3.68/2.00 3.68/2.00 7: evalrandom1dbb1in -> evalrandom1dbb5in : B'=1+B, [], cost: 1 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 ### Simplification by acceleration and chaining ### 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Eliminated locations (on linear paths): 3.68/2.00 3.68/2.00 Start location: evalrandom1dstart 3.68/2.00 3.68/2.00 9: evalrandom1dstart -> evalrandom1dbb5in : B'=1, [ A>=1 ], cost: 2 3.68/2.00 3.68/2.00 10: evalrandom1dbb5in -> evalrandom1dbb5in : B'=1+B, [ A>=B ], cost: 2 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Accelerating simple loops of location 2. 3.68/2.00 3.68/2.00 Accelerating the following rules: 3.68/2.00 3.68/2.00 10: evalrandom1dbb5in -> evalrandom1dbb5in : B'=1+B, [ A>=B ], cost: 2 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Accelerated rule 10 with metering function 1+A-B, yielding the new rule 11. 3.68/2.00 3.68/2.00 Removing the simple loops: 10. 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Accelerated all simple loops using metering functions (where possible): 3.68/2.00 3.68/2.00 Start location: evalrandom1dstart 3.68/2.00 3.68/2.00 9: evalrandom1dstart -> evalrandom1dbb5in : B'=1, [ A>=1 ], cost: 2 3.68/2.00 3.68/2.00 11: evalrandom1dbb5in -> evalrandom1dbb5in : B'=1+A, [ A>=B ], cost: 2+2*A-2*B 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Chained accelerated rules (with incoming rules): 3.68/2.00 3.68/2.00 Start location: evalrandom1dstart 3.68/2.00 3.68/2.00 9: evalrandom1dstart -> evalrandom1dbb5in : B'=1, [ A>=1 ], cost: 2 3.68/2.00 3.68/2.00 12: evalrandom1dstart -> evalrandom1dbb5in : B'=1+A, [ A>=1 ], cost: 2+2*A 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Removed unreachable locations (and leaf rules with constant cost): 3.68/2.00 3.68/2.00 Start location: evalrandom1dstart 3.68/2.00 3.68/2.00 12: evalrandom1dstart -> evalrandom1dbb5in : B'=1+A, [ A>=1 ], cost: 2+2*A 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 ### Computing asymptotic complexity ### 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Fully simplified ITS problem 3.68/2.00 3.68/2.00 Start location: evalrandom1dstart 3.68/2.00 3.68/2.00 12: evalrandom1dstart -> evalrandom1dbb5in : B'=1+A, [ A>=1 ], cost: 2+2*A 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Computing asymptotic complexity for rule 12 3.68/2.00 3.68/2.00 Solved the limit problem by the following transformations: 3.68/2.00 3.68/2.00 Created initial limit problem: 3.68/2.00 3.68/2.00 A (+/+!), 2+2*A (+) [not solved] 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 removing all constraints (solved by SMT) 3.68/2.00 3.68/2.00 resulting limit problem: [solved] 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 applying transformation rule (C) using substitution {A==n} 3.68/2.00 3.68/2.00 resulting limit problem: 3.68/2.00 3.68/2.00 [solved] 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Solution: 3.68/2.00 3.68/2.00 A / n 3.68/2.00 3.68/2.00 Resulting cost 2+2*n has complexity: Poly(n^1) 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Found new complexity Poly(n^1). 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 Obtained the following overall complexity (w.r.t. the length of the input n): 3.68/2.00 3.68/2.00 Complexity: Poly(n^1) 3.68/2.00 3.68/2.00 Cpx degree: 1 3.68/2.00 3.68/2.00 Solved cost: 2+2*n 3.68/2.00 3.68/2.00 Rule cost: 2+2*A 3.68/2.00 3.68/2.00 Rule guard: [ A>=1 ] 3.68/2.00 3.68/2.00 3.68/2.00 3.68/2.00 WORST_CASE(Omega(n^1),?) 3.68/2.00 3.68/2.00 3.68/2.00 ---------------------------------------- 3.68/2.00 3.68/2.00 (4) 3.68/2.00 BOUNDS(n^1, INF) 3.68/2.02 EOF