4.74/2.36 WORST_CASE(Omega(n^2), O(n^2)) 4.74/2.37 proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat 4.74/2.37 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.74/2.37 4.74/2.37 4.74/2.37 The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(n^2, n^2). 4.74/2.37 4.74/2.37 (0) CpxIntTrs 4.74/2.37 (1) Koat Proof [FINISHED, 110 ms] 4.74/2.37 (2) BOUNDS(1, n^2) 4.74/2.37 (3) Loat Proof [FINISHED, 620 ms] 4.74/2.37 (4) BOUNDS(n^2, INF) 4.74/2.37 4.74/2.37 4.74/2.37 ---------------------------------------- 4.74/2.37 4.74/2.37 (0) 4.74/2.37 Obligation: 4.74/2.37 Complexity Int TRS consisting of the following rules: 4.74/2.37 evalsipmabubblestart(A, B) -> Com_1(evalsipmabubbleentryin(A, B)) :|: TRUE 4.74/2.37 evalsipmabubbleentryin(A, B) -> Com_1(evalsipmabubblebb6in(A, B)) :|: TRUE 4.74/2.37 evalsipmabubblebb6in(A, B) -> Com_1(evalsipmabubblebb4in(A, 0)) :|: A >= 0 4.74/2.37 evalsipmabubblebb6in(A, B) -> Com_1(evalsipmabubblereturnin(A, B)) :|: 0 >= A + 1 4.74/2.37 evalsipmabubblebb4in(A, B) -> Com_1(evalsipmabubblebb1in(A, B)) :|: A >= 1 + B 4.74/2.37 evalsipmabubblebb4in(A, B) -> Com_1(evalsipmabubblebb5in(A, B)) :|: B >= A 4.74/2.37 evalsipmabubblebb1in(A, B) -> Com_1(evalsipmabubblebb2in(A, B)) :|: C >= D + 1 4.74/2.37 evalsipmabubblebb1in(A, B) -> Com_1(evalsipmabubblebb3in(A, B)) :|: D >= C 4.74/2.37 evalsipmabubblebb2in(A, B) -> Com_1(evalsipmabubblebb3in(A, B)) :|: TRUE 4.74/2.37 evalsipmabubblebb3in(A, B) -> Com_1(evalsipmabubblebb4in(A, B + 1)) :|: TRUE 4.74/2.37 evalsipmabubblebb5in(A, B) -> Com_1(evalsipmabubblebb6in(A - 1, B)) :|: TRUE 4.74/2.37 evalsipmabubblereturnin(A, B) -> Com_1(evalsipmabubblestop(A, B)) :|: TRUE 4.74/2.37 4.74/2.37 The start-symbols are:[evalsipmabubblestart_2] 4.74/2.37 4.74/2.37 4.74/2.37 ---------------------------------------- 4.74/2.37 4.74/2.37 (1) Koat Proof (FINISHED) 4.74/2.37 YES(?, 137*ar_0 + 18*ar_0^2 + 125) 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Initial complexity problem: 4.74/2.37 4.74/2.37 1: T: 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblestart(ar_0, ar_1) -> Com_1(evalsipmabubbleentryin(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubbleentryin(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalsipmabubblestart(ar_0, ar_1)) [ 0 <= 0 ] 4.74/2.37 4.74/2.37 start location: koat_start 4.74/2.37 4.74/2.37 leaf cost: 0 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Repeatedly propagating knowledge in problem 1 produces the following problem: 4.74/2.37 4.74/2.37 2: T: 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubblestart(ar_0, ar_1) -> Com_1(evalsipmabubbleentryin(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubbleentryin(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalsipmabubblestart(ar_0, ar_1)) [ 0 <= 0 ] 4.74/2.37 4.74/2.37 start location: koat_start 4.74/2.37 4.74/2.37 leaf cost: 0 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 A polynomial rank function with 4.74/2.37 4.74/2.37 Pol(evalsipmabubblestart) = 2 4.74/2.37 4.74/2.37 Pol(evalsipmabubbleentryin) = 2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb6in) = 2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb4in) = 2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblereturnin) = 1 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb1in) = 2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb5in) = 2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb2in) = 2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb3in) = 2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblestop) = 0 4.74/2.37 4.74/2.37 Pol(koat_start) = 2 4.74/2.37 4.74/2.37 orients all transitions weakly and the transitions 4.74/2.37 4.74/2.37 evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1)) 4.74/2.37 4.74/2.37 evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ] 4.74/2.37 4.74/2.37 strictly and produces the following problem: 4.74/2.37 4.74/2.37 3: T: 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubblestart(ar_0, ar_1) -> Com_1(evalsipmabubbleentryin(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubbleentryin(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ] 4.74/2.37 4.74/2.37 (Comp: 2, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 2, Cost: 1) evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalsipmabubblestart(ar_0, ar_1)) [ 0 <= 0 ] 4.74/2.37 4.74/2.37 start location: koat_start 4.74/2.37 4.74/2.37 leaf cost: 0 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 A polynomial rank function with 4.74/2.37 4.74/2.37 Pol(evalsipmabubblestart) = V_1 + 1 4.74/2.37 4.74/2.37 Pol(evalsipmabubbleentryin) = V_1 + 1 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb6in) = V_1 + 1 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb4in) = V_1 4.74/2.37 4.74/2.37 Pol(evalsipmabubblereturnin) = V_1 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb1in) = V_1 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb5in) = V_1 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb2in) = V_1 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb3in) = V_1 4.74/2.37 4.74/2.37 Pol(evalsipmabubblestop) = V_1 4.74/2.37 4.74/2.37 Pol(koat_start) = V_1 + 1 4.74/2.37 4.74/2.37 orients all transitions weakly and the transition 4.74/2.37 4.74/2.37 evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ] 4.74/2.37 4.74/2.37 strictly and produces the following problem: 4.74/2.37 4.74/2.37 4: T: 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubblestart(ar_0, ar_1) -> Com_1(evalsipmabubbleentryin(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubbleentryin(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ar_0 + 1, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ] 4.74/2.37 4.74/2.37 (Comp: 2, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 2, Cost: 1) evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalsipmabubblestart(ar_0, ar_1)) [ 0 <= 0 ] 4.74/2.37 4.74/2.37 start location: koat_start 4.74/2.37 4.74/2.37 leaf cost: 0 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 A polynomial rank function with 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb5in) = 1 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb6in) = 0 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb4in) = 2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb1in) = 2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb3in) = 2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb2in) = 2 4.74/2.37 4.74/2.37 and size complexities 4.74/2.37 4.74/2.37 S("koat_start(ar_0, ar_1) -> Com_1(evalsipmabubblestart(ar_0, ar_1)) [ 0 <= 0 ]", 0-0) = ar_0 4.74/2.37 4.74/2.37 S("koat_start(ar_0, ar_1) -> Com_1(evalsipmabubblestart(ar_0, ar_1)) [ 0 <= 0 ]", 0-1) = ar_1 4.74/2.37 4.74/2.37 S("evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1))", 0-0) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1))", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1))", 0-0) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1))", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1))", 0-0) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1))", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1))", 0-0) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1))", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ]", 0-0) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ]", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ]", 0-0) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ]", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ]", 0-0) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ]", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ]", 0-0) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ]", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ]", 0-0) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ]", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ]", 0-0) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ]", 0-1) = 0 4.74/2.37 4.74/2.37 S("evalsipmabubbleentryin(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0, ar_1))", 0-0) = ar_0 4.74/2.37 4.74/2.37 S("evalsipmabubbleentryin(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0, ar_1))", 0-1) = ar_1 4.74/2.37 4.74/2.37 S("evalsipmabubblestart(ar_0, ar_1) -> Com_1(evalsipmabubbleentryin(ar_0, ar_1))", 0-0) = ar_0 4.74/2.37 4.74/2.37 S("evalsipmabubblestart(ar_0, ar_1) -> Com_1(evalsipmabubbleentryin(ar_0, ar_1))", 0-1) = ar_1 4.74/2.37 4.74/2.37 orients the transitions 4.74/2.37 4.74/2.37 evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1)) 4.74/2.37 4.74/2.37 evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.74/2.37 4.74/2.37 evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.74/2.37 4.74/2.37 evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1)) 4.74/2.37 4.74/2.37 evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ] 4.74/2.37 4.74/2.37 evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ] 4.74/2.37 4.74/2.37 weakly and the transitions 4.74/2.37 4.74/2.37 evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1)) 4.74/2.37 4.74/2.37 evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.74/2.37 4.74/2.37 strictly and produces the following problem: 4.74/2.37 4.74/2.37 5: T: 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubblestart(ar_0, ar_1) -> Com_1(evalsipmabubbleentryin(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubbleentryin(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ar_0 + 1, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ] 4.74/2.37 4.74/2.37 (Comp: 2, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.74/2.37 4.74/2.37 (Comp: 2*ar_0 + 2, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1)) 4.74/2.37 4.74/2.37 (Comp: 2*ar_0 + 2, Cost: 1) evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 2, Cost: 1) evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalsipmabubblestart(ar_0, ar_1)) [ 0 <= 0 ] 4.74/2.37 4.74/2.37 start location: koat_start 4.74/2.37 4.74/2.37 leaf cost: 0 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 A polynomial rank function with 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb4in) = V_1 - V_2 + 1 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb1in) = V_1 - V_2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb3in) = V_1 - V_2 4.74/2.37 4.74/2.37 Pol(evalsipmabubblebb2in) = V_1 - V_2 4.74/2.37 4.74/2.37 and size complexities 4.74/2.37 4.74/2.37 S("koat_start(ar_0, ar_1) -> Com_1(evalsipmabubblestart(ar_0, ar_1)) [ 0 <= 0 ]", 0-0) = ar_0 4.74/2.37 4.74/2.37 S("koat_start(ar_0, ar_1) -> Com_1(evalsipmabubblestart(ar_0, ar_1)) [ 0 <= 0 ]", 0-1) = ar_1 4.74/2.37 4.74/2.37 S("evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1))", 0-0) = 3*ar_0 + 162 4.74/2.37 4.74/2.37 S("evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1))", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1))", 0-0) = 3*ar_0 + 18 4.74/2.37 4.74/2.37 S("evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1))", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1))", 0-0) = 3*ar_0 + 18 4.74/2.37 4.74/2.37 S("evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1))", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1))", 0-0) = 3*ar_0 + 18 4.74/2.37 4.74/2.37 S("evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1))", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ]", 0-0) = 3*ar_0 + 18 4.74/2.37 4.74/2.37 S("evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ]", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ]", 0-0) = 3*ar_0 + 18 4.74/2.37 4.74/2.37 S("evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ]", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ]", 0-0) = 3*ar_0 + 18 4.74/2.37 4.74/2.37 S("evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ]", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ]", 0-0) = 3*ar_0 + 18 4.74/2.37 4.74/2.37 S("evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ]", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ]", 0-0) = 3*ar_0 + 54 4.74/2.37 4.74/2.37 S("evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ]", 0-1) = ? 4.74/2.37 4.74/2.37 S("evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ]", 0-0) = 3*ar_0 + 18 4.74/2.37 4.74/2.37 S("evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ]", 0-1) = 0 4.74/2.37 4.74/2.37 S("evalsipmabubbleentryin(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0, ar_1))", 0-0) = ar_0 4.74/2.37 4.74/2.37 S("evalsipmabubbleentryin(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0, ar_1))", 0-1) = ar_1 4.74/2.37 4.74/2.37 S("evalsipmabubblestart(ar_0, ar_1) -> Com_1(evalsipmabubbleentryin(ar_0, ar_1))", 0-0) = ar_0 4.74/2.37 4.74/2.37 S("evalsipmabubblestart(ar_0, ar_1) -> Com_1(evalsipmabubbleentryin(ar_0, ar_1))", 0-1) = ar_1 4.74/2.37 4.74/2.37 orients the transitions 4.74/2.37 4.74/2.37 evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.74/2.37 4.74/2.37 evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1)) 4.74/2.37 4.74/2.37 evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ] 4.74/2.37 4.74/2.37 evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ] 4.74/2.37 4.74/2.37 weakly and the transition 4.74/2.37 4.74/2.37 evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.74/2.37 4.74/2.37 strictly and produces the following problem: 4.74/2.37 4.74/2.37 6: T: 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubblestart(ar_0, ar_1) -> Com_1(evalsipmabubbleentryin(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubbleentryin(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ar_0 + 1, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ] 4.74/2.37 4.74/2.37 (Comp: 2, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ] 4.74/2.37 4.74/2.37 (Comp: 3*ar_0^2 + 22*ar_0 + 19, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.74/2.37 4.74/2.37 (Comp: 2*ar_0 + 2, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ] 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ?, Cost: 1) evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1)) 4.74/2.37 4.74/2.37 (Comp: 2*ar_0 + 2, Cost: 1) evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 2, Cost: 1) evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalsipmabubblestart(ar_0, ar_1)) [ 0 <= 0 ] 4.74/2.37 4.74/2.37 start location: koat_start 4.74/2.37 4.74/2.37 leaf cost: 0 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Repeatedly propagating knowledge in problem 6 produces the following problem: 4.74/2.37 4.74/2.37 7: T: 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubblestart(ar_0, ar_1) -> Com_1(evalsipmabubbleentryin(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 1) evalsipmabubbleentryin(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: ar_0 + 1, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, 0)) [ ar_0 >= 0 ] 4.74/2.37 4.74/2.37 (Comp: 2, Cost: 1) evalsipmabubblebb6in(ar_0, ar_1) -> Com_1(evalsipmabubblereturnin(ar_0, ar_1)) [ 0 >= ar_0 + 1 ] 4.74/2.37 4.74/2.37 (Comp: 3*ar_0^2 + 22*ar_0 + 19, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb1in(ar_0, ar_1)) [ ar_0 >= ar_1 + 1 ] 4.74/2.37 4.74/2.37 (Comp: 2*ar_0 + 2, Cost: 1) evalsipmabubblebb4in(ar_0, ar_1) -> Com_1(evalsipmabubblebb5in(ar_0, ar_1)) [ ar_1 >= ar_0 ] 4.74/2.37 4.74/2.37 (Comp: 3*ar_0^2 + 22*ar_0 + 19, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb2in(ar_0, ar_1)) [ c >= d + 1 ] 4.74/2.37 4.74/2.37 (Comp: 3*ar_0^2 + 22*ar_0 + 19, Cost: 1) evalsipmabubblebb1in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) [ c >= d ] 4.74/2.37 4.74/2.37 (Comp: 3*ar_0^2 + 22*ar_0 + 19, Cost: 1) evalsipmabubblebb2in(ar_0, ar_1) -> Com_1(evalsipmabubblebb3in(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 6*ar_0^2 + 44*ar_0 + 38, Cost: 1) evalsipmabubblebb3in(ar_0, ar_1) -> Com_1(evalsipmabubblebb4in(ar_0, ar_1 + 1)) 4.74/2.37 4.74/2.37 (Comp: 2*ar_0 + 2, Cost: 1) evalsipmabubblebb5in(ar_0, ar_1) -> Com_1(evalsipmabubblebb6in(ar_0 - 1, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 2, Cost: 1) evalsipmabubblereturnin(ar_0, ar_1) -> Com_1(evalsipmabubblestop(ar_0, ar_1)) 4.74/2.37 4.74/2.37 (Comp: 1, Cost: 0) koat_start(ar_0, ar_1) -> Com_1(evalsipmabubblestart(ar_0, ar_1)) [ 0 <= 0 ] 4.74/2.37 4.74/2.37 start location: koat_start 4.74/2.37 4.74/2.37 leaf cost: 0 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Complexity upper bound 137*ar_0 + 18*ar_0^2 + 125 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Time: 0.099 sec (SMT: 0.087 sec) 4.74/2.37 4.74/2.37 4.74/2.37 ---------------------------------------- 4.74/2.37 4.74/2.37 (2) 4.74/2.37 BOUNDS(1, n^2) 4.74/2.37 4.74/2.37 ---------------------------------------- 4.74/2.37 4.74/2.37 (3) Loat Proof (FINISHED) 4.74/2.37 4.74/2.37 4.74/2.37 ### Pre-processing the ITS problem ### 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Initial linear ITS problem 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 0: evalsipmabubblestart -> evalsipmabubbleentryin : [], cost: 1 4.74/2.37 4.74/2.37 1: evalsipmabubbleentryin -> evalsipmabubblebb6in : [], cost: 1 4.74/2.37 4.74/2.37 2: evalsipmabubblebb6in -> evalsipmabubblebb4in : B'=0, [ A>=0 ], cost: 1 4.74/2.37 4.74/2.37 3: evalsipmabubblebb6in -> evalsipmabubblereturnin : [ 0>=1+A ], cost: 1 4.74/2.37 4.74/2.37 4: evalsipmabubblebb4in -> evalsipmabubblebb1in : [ A>=1+B ], cost: 1 4.74/2.37 4.74/2.37 5: evalsipmabubblebb4in -> evalsipmabubblebb5in : [ B>=A ], cost: 1 4.74/2.37 4.74/2.37 6: evalsipmabubblebb1in -> evalsipmabubblebb2in : [ free>=1+free_1 ], cost: 1 4.74/2.37 4.74/2.37 7: evalsipmabubblebb1in -> evalsipmabubblebb3in : [ free_2>=free_3 ], cost: 1 4.74/2.37 4.74/2.37 8: evalsipmabubblebb2in -> evalsipmabubblebb3in : [], cost: 1 4.74/2.37 4.74/2.37 9: evalsipmabubblebb3in -> evalsipmabubblebb4in : B'=1+B, [], cost: 1 4.74/2.37 4.74/2.37 10: evalsipmabubblebb5in -> evalsipmabubblebb6in : A'=-1+A, [], cost: 1 4.74/2.37 4.74/2.37 11: evalsipmabubblereturnin -> evalsipmabubblestop : [], cost: 1 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Removed unreachable and leaf rules: 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 0: evalsipmabubblestart -> evalsipmabubbleentryin : [], cost: 1 4.74/2.37 4.74/2.37 1: evalsipmabubbleentryin -> evalsipmabubblebb6in : [], cost: 1 4.74/2.37 4.74/2.37 2: evalsipmabubblebb6in -> evalsipmabubblebb4in : B'=0, [ A>=0 ], cost: 1 4.74/2.37 4.74/2.37 4: evalsipmabubblebb4in -> evalsipmabubblebb1in : [ A>=1+B ], cost: 1 4.74/2.37 4.74/2.37 5: evalsipmabubblebb4in -> evalsipmabubblebb5in : [ B>=A ], cost: 1 4.74/2.37 4.74/2.37 6: evalsipmabubblebb1in -> evalsipmabubblebb2in : [ free>=1+free_1 ], cost: 1 4.74/2.37 4.74/2.37 7: evalsipmabubblebb1in -> evalsipmabubblebb3in : [ free_2>=free_3 ], cost: 1 4.74/2.37 4.74/2.37 8: evalsipmabubblebb2in -> evalsipmabubblebb3in : [], cost: 1 4.74/2.37 4.74/2.37 9: evalsipmabubblebb3in -> evalsipmabubblebb4in : B'=1+B, [], cost: 1 4.74/2.37 4.74/2.37 10: evalsipmabubblebb5in -> evalsipmabubblebb6in : A'=-1+A, [], cost: 1 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Simplified all rules, resulting in: 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 0: evalsipmabubblestart -> evalsipmabubbleentryin : [], cost: 1 4.74/2.37 4.74/2.37 1: evalsipmabubbleentryin -> evalsipmabubblebb6in : [], cost: 1 4.74/2.37 4.74/2.37 2: evalsipmabubblebb6in -> evalsipmabubblebb4in : B'=0, [ A>=0 ], cost: 1 4.74/2.37 4.74/2.37 4: evalsipmabubblebb4in -> evalsipmabubblebb1in : [ A>=1+B ], cost: 1 4.74/2.37 4.74/2.37 5: evalsipmabubblebb4in -> evalsipmabubblebb5in : [ B>=A ], cost: 1 4.74/2.37 4.74/2.37 6: evalsipmabubblebb1in -> evalsipmabubblebb2in : [], cost: 1 4.74/2.37 4.74/2.37 7: evalsipmabubblebb1in -> evalsipmabubblebb3in : [], cost: 1 4.74/2.37 4.74/2.37 8: evalsipmabubblebb2in -> evalsipmabubblebb3in : [], cost: 1 4.74/2.37 4.74/2.37 9: evalsipmabubblebb3in -> evalsipmabubblebb4in : B'=1+B, [], cost: 1 4.74/2.37 4.74/2.37 10: evalsipmabubblebb5in -> evalsipmabubblebb6in : A'=-1+A, [], cost: 1 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 ### Simplification by acceleration and chaining ### 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Eliminated locations (on linear paths): 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 12: evalsipmabubblestart -> evalsipmabubblebb6in : [], cost: 2 4.74/2.37 4.74/2.37 2: evalsipmabubblebb6in -> evalsipmabubblebb4in : B'=0, [ A>=0 ], cost: 1 4.74/2.37 4.74/2.37 4: evalsipmabubblebb4in -> evalsipmabubblebb1in : [ A>=1+B ], cost: 1 4.74/2.37 4.74/2.37 13: evalsipmabubblebb4in -> evalsipmabubblebb6in : A'=-1+A, [ B>=A ], cost: 2 4.74/2.37 4.74/2.37 7: evalsipmabubblebb1in -> evalsipmabubblebb3in : [], cost: 1 4.74/2.37 4.74/2.37 14: evalsipmabubblebb1in -> evalsipmabubblebb3in : [], cost: 2 4.74/2.37 4.74/2.37 9: evalsipmabubblebb3in -> evalsipmabubblebb4in : B'=1+B, [], cost: 1 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Eliminated locations (on tree-shaped paths): 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 12: evalsipmabubblestart -> evalsipmabubblebb6in : [], cost: 2 4.74/2.37 4.74/2.37 2: evalsipmabubblebb6in -> evalsipmabubblebb4in : B'=0, [ A>=0 ], cost: 1 4.74/2.37 4.74/2.37 13: evalsipmabubblebb4in -> evalsipmabubblebb6in : A'=-1+A, [ B>=A ], cost: 2 4.74/2.37 4.74/2.37 15: evalsipmabubblebb4in -> evalsipmabubblebb3in : [ A>=1+B ], cost: 2 4.74/2.37 4.74/2.37 16: evalsipmabubblebb4in -> evalsipmabubblebb3in : [ A>=1+B ], cost: 3 4.74/2.37 4.74/2.37 9: evalsipmabubblebb3in -> evalsipmabubblebb4in : B'=1+B, [], cost: 1 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Eliminated locations (on tree-shaped paths): 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 12: evalsipmabubblestart -> evalsipmabubblebb6in : [], cost: 2 4.74/2.37 4.74/2.37 2: evalsipmabubblebb6in -> evalsipmabubblebb4in : B'=0, [ A>=0 ], cost: 1 4.74/2.37 4.74/2.37 13: evalsipmabubblebb4in -> evalsipmabubblebb6in : A'=-1+A, [ B>=A ], cost: 2 4.74/2.37 4.74/2.37 17: evalsipmabubblebb4in -> evalsipmabubblebb4in : B'=1+B, [ A>=1+B ], cost: 3 4.74/2.37 4.74/2.37 18: evalsipmabubblebb4in -> evalsipmabubblebb4in : B'=1+B, [ A>=1+B ], cost: 4 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Accelerating simple loops of location 3. 4.74/2.37 4.74/2.37 Simplified some of the simple loops (and removed duplicate rules). 4.74/2.37 4.74/2.37 Accelerating the following rules: 4.74/2.37 4.74/2.37 18: evalsipmabubblebb4in -> evalsipmabubblebb4in : B'=1+B, [ A>=1+B ], cost: 4 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Accelerated rule 18 with metering function A-B, yielding the new rule 19. 4.74/2.37 4.74/2.37 Removing the simple loops: 18. 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Accelerated all simple loops using metering functions (where possible): 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 12: evalsipmabubblestart -> evalsipmabubblebb6in : [], cost: 2 4.74/2.37 4.74/2.37 2: evalsipmabubblebb6in -> evalsipmabubblebb4in : B'=0, [ A>=0 ], cost: 1 4.74/2.37 4.74/2.37 13: evalsipmabubblebb4in -> evalsipmabubblebb6in : A'=-1+A, [ B>=A ], cost: 2 4.74/2.37 4.74/2.37 19: evalsipmabubblebb4in -> evalsipmabubblebb4in : B'=A, [ A>=1+B ], cost: 4*A-4*B 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Chained accelerated rules (with incoming rules): 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 12: evalsipmabubblestart -> evalsipmabubblebb6in : [], cost: 2 4.74/2.37 4.74/2.37 2: evalsipmabubblebb6in -> evalsipmabubblebb4in : B'=0, [ A>=0 ], cost: 1 4.74/2.37 4.74/2.37 20: evalsipmabubblebb6in -> evalsipmabubblebb4in : B'=A, [ A>=1 ], cost: 1+4*A 4.74/2.37 4.74/2.37 13: evalsipmabubblebb4in -> evalsipmabubblebb6in : A'=-1+A, [ B>=A ], cost: 2 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Eliminated locations (on tree-shaped paths): 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 12: evalsipmabubblestart -> evalsipmabubblebb6in : [], cost: 2 4.74/2.37 4.74/2.37 21: evalsipmabubblebb6in -> evalsipmabubblebb6in : A'=-1+A, B'=0, [ A>=0 && 0>=A ], cost: 3 4.74/2.37 4.74/2.37 22: evalsipmabubblebb6in -> evalsipmabubblebb6in : A'=-1+A, B'=A, [ A>=1 ], cost: 3+4*A 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Accelerating simple loops of location 2. 4.74/2.37 4.74/2.37 Simplified some of the simple loops (and removed duplicate rules). 4.74/2.37 4.74/2.37 Accelerating the following rules: 4.74/2.37 4.74/2.37 21: evalsipmabubblebb6in -> evalsipmabubblebb6in : A'=-1+A, B'=0, [ -A==0 ], cost: 3 4.74/2.37 4.74/2.37 22: evalsipmabubblebb6in -> evalsipmabubblebb6in : A'=-1+A, B'=A, [ A>=1 ], cost: 3+4*A 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Accelerated rule 21 with metering function 1+A, yielding the new rule 23. 4.74/2.37 4.74/2.37 Accelerated rule 22 with metering function A, yielding the new rule 24. 4.74/2.37 4.74/2.37 Removing the simple loops: 21 22. 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Accelerated all simple loops using metering functions (where possible): 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 12: evalsipmabubblestart -> evalsipmabubblebb6in : [], cost: 2 4.74/2.37 4.74/2.37 23: evalsipmabubblebb6in -> evalsipmabubblebb6in : A'=-1, B'=0, [ -A==0 ], cost: 3+3*A 4.74/2.37 4.74/2.37 24: evalsipmabubblebb6in -> evalsipmabubblebb6in : A'=0, B'=1, [ A>=1 ], cost: 5*A+2*A^2 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Chained accelerated rules (with incoming rules): 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 12: evalsipmabubblestart -> evalsipmabubblebb6in : [], cost: 2 4.74/2.37 4.74/2.37 25: evalsipmabubblestart -> evalsipmabubblebb6in : A'=-1, B'=0, [ -A==0 ], cost: 5+3*A 4.74/2.37 4.74/2.37 26: evalsipmabubblestart -> evalsipmabubblebb6in : A'=0, B'=1, [ A>=1 ], cost: 2+5*A+2*A^2 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Removed unreachable locations (and leaf rules with constant cost): 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 25: evalsipmabubblestart -> evalsipmabubblebb6in : A'=-1, B'=0, [ -A==0 ], cost: 5+3*A 4.74/2.37 4.74/2.37 26: evalsipmabubblestart -> evalsipmabubblebb6in : A'=0, B'=1, [ A>=1 ], cost: 2+5*A+2*A^2 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 ### Computing asymptotic complexity ### 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Fully simplified ITS problem 4.74/2.37 4.74/2.37 Start location: evalsipmabubblestart 4.74/2.37 4.74/2.37 25: evalsipmabubblestart -> evalsipmabubblebb6in : A'=-1, B'=0, [ -A==0 ], cost: 5+3*A 4.74/2.37 4.74/2.37 26: evalsipmabubblestart -> evalsipmabubblebb6in : A'=0, B'=1, [ A>=1 ], cost: 2+5*A+2*A^2 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Computing asymptotic complexity for rule 25 4.74/2.37 4.74/2.37 Could not solve the limit problem. 4.74/2.37 4.74/2.37 Resulting cost 0 has complexity: Unknown 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Computing asymptotic complexity for rule 26 4.74/2.37 4.74/2.37 Solved the limit problem by the following transformations: 4.74/2.37 4.74/2.37 Created initial limit problem: 4.74/2.37 4.74/2.37 2+5*A+2*A^2 (+), A (+/+!) [not solved] 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 removing all constraints (solved by SMT) 4.74/2.37 4.74/2.37 resulting limit problem: [solved] 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 applying transformation rule (C) using substitution {A==n} 4.74/2.37 4.74/2.37 resulting limit problem: 4.74/2.37 4.74/2.37 [solved] 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Solution: 4.74/2.37 4.74/2.37 A / n 4.74/2.37 4.74/2.37 Resulting cost 2+5*n+2*n^2 has complexity: Poly(n^2) 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Found new complexity Poly(n^2). 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 Obtained the following overall complexity (w.r.t. the length of the input n): 4.74/2.37 4.74/2.37 Complexity: Poly(n^2) 4.74/2.37 4.74/2.37 Cpx degree: 2 4.74/2.37 4.74/2.37 Solved cost: 2+5*n+2*n^2 4.74/2.37 4.74/2.37 Rule cost: 2+5*A+2*A^2 4.74/2.37 4.74/2.37 Rule guard: [ A>=1 ] 4.74/2.37 4.74/2.37 4.74/2.37 4.74/2.37 WORST_CASE(Omega(n^2),?) 4.74/2.37 4.74/2.37 4.74/2.37 ---------------------------------------- 4.74/2.37 4.74/2.37 (4) 4.74/2.37 BOUNDS(n^2, INF) 4.74/2.39 EOF