YES(?, 6*b + 225*a + 30*a*b + 49) Initial complexity problem: 1: T: (1, 1) evalspeedpldi3start(a, b, c, d) -> evalspeedpldi3entryin(a, b, c, d) (?, 1) evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3returnin(a, b, c, d) [ 0 >= a ] (?, 1) evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3returnin(a, b, c, d) [ a >= b ] (?, 1) evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, 0) [ a >= 1 /\ b >= a + 1 ] (?, 1) evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ b >= d + 1 ] (?, 1) evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3returnin(a, b, c, d) [ d >= b ] (?, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ a >= c + 1 ] (?, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ c >= a ] (?, 1) evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) (?, 1) evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) (?, 1) evalspeedpldi3returnin(a, b, c, d) -> evalspeedpldi3stop(a, b, c, d) start location: evalspeedpldi3start leaf cost: 0 Repeatedly removing leaves of the complexity graph in problem 1 produces the following problem: 2: T: (1, 1) evalspeedpldi3start(a, b, c, d) -> evalspeedpldi3entryin(a, b, c, d) (?, 1) evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, 0) [ a >= 1 /\ b >= a + 1 ] (?, 1) evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ b >= d + 1 ] (?, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ a >= c + 1 ] (?, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ c >= a ] (?, 1) evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) (?, 1) evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) start location: evalspeedpldi3start leaf cost: 4 Repeatedly propagating knowledge in problem 2 produces the following problem: 3: T: (1, 1) evalspeedpldi3start(a, b, c, d) -> evalspeedpldi3entryin(a, b, c, d) (1, 1) evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, 0) [ a >= 1 /\ b >= a + 1 ] (?, 1) evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ b >= d + 1 ] (?, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ a >= c + 1 ] (?, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ c >= a ] (?, 1) evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) (?, 1) evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) start location: evalspeedpldi3start leaf cost: 4 Applied AI with 'oct' on problem 3 to obtain the following invariants: For symbol evalspeedpldi3bb2in: X_2 - X_4 - 1 >= 0 /\ X_4 >= 0 /\ X_3 + X_4 >= 0 /\ X_2 + X_4 - 2 >= 0 /\ X_1 + X_4 - 1 >= 0 /\ X_3 >= 0 /\ X_2 + X_3 - 2 >= 0 /\ X_1 + X_3 - 1 >= 0 /\ X_2 - 2 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0 For symbol evalspeedpldi3bb3in: X_2 - X_4 - 1 >= 0 /\ X_4 >= 0 /\ X_3 + X_4 >= 0 /\ X_2 + X_4 - 2 >= 0 /\ X_1 + X_4 - 1 >= 0 /\ X_2 - X_3 - 2 >= 0 /\ X_1 - X_3 - 1 >= 0 /\ X_3 >= 0 /\ X_2 + X_3 - 2 >= 0 /\ X_1 + X_3 - 1 >= 0 /\ X_2 - 2 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0 For symbol evalspeedpldi3bb4in: X_2 - X_4 - 1 >= 0 /\ X_4 >= 0 /\ X_3 + X_4 - 1 >= 0 /\ X_2 + X_4 - 2 >= 0 /\ X_1 + X_4 - 1 >= 0 /\ X_3 - 1 >= 0 /\ X_2 + X_3 - 3 >= 0 /\ X_1 + X_3 - 2 >= 0 /\ -X_1 + X_3 >= 0 /\ X_2 - 2 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0 For symbol evalspeedpldi3bb5in: X_4 >= 0 /\ X_3 + X_4 >= 0 /\ X_2 + X_4 - 2 >= 0 /\ X_1 + X_4 - 1 >= 0 /\ X_3 >= 0 /\ X_2 + X_3 - 2 >= 0 /\ X_1 + X_3 - 1 >= 0 /\ X_2 - 2 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0 This yielded the following problem: 4: T: (?, 1) evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d - 1 >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c - 1 >= 0 /\ b + c - 3 >= 0 /\ a + c - 2 >= 0 /\ -a + c >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 ] (?, 1) evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ b - c - 2 >= 0 /\ a - c - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 ] (?, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ c >= a ] (?, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ a >= c + 1 ] (?, 1) evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ b >= d + 1 ] (1, 1) evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, 0) [ a >= 1 /\ b >= a + 1 ] (1, 1) evalspeedpldi3start(a, b, c, d) -> evalspeedpldi3entryin(a, b, c, d) start location: evalspeedpldi3start leaf cost: 4 A polynomial rank function with Pol(evalspeedpldi3bb4in) = 2*V_2 - 2*V_4 + 13 Pol(evalspeedpldi3bb5in) = 2*V_2 - 2*V_4 + 14 Pol(evalspeedpldi3bb3in) = 2*V_2 - 2*V_4 + 14 Pol(evalspeedpldi3bb2in) = 2*V_2 - 2*V_4 + 14 Pol(evalspeedpldi3entryin) = 2*V_2 + 14 Pol(evalspeedpldi3start) = 2*V_2 + 14 orients all transitions weakly and the transitions evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d - 1 >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c - 1 >= 0 /\ b + c - 3 >= 0 /\ a + c - 2 >= 0 /\ -a + c >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 ] evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ c >= a ] strictly and produces the following problem: 5: T: (2*b + 14, 1) evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d - 1 >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c - 1 >= 0 /\ b + c - 3 >= 0 /\ a + c - 2 >= 0 /\ -a + c >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 ] (?, 1) evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ b - c - 2 >= 0 /\ a - c - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 ] (2*b + 14, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ c >= a ] (?, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ a >= c + 1 ] (?, 1) evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ b >= d + 1 ] (1, 1) evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, 0) [ a >= 1 /\ b >= a + 1 ] (1, 1) evalspeedpldi3start(a, b, c, d) -> evalspeedpldi3entryin(a, b, c, d) start location: evalspeedpldi3start leaf cost: 4 A polynomial rank function with Pol(evalspeedpldi3bb5in) = 5*V_1 - 5*V_3 Pol(evalspeedpldi3bb2in) = 5*V_1 - 5*V_3 - 3 Pol(evalspeedpldi3bb3in) = 5*V_1 - 5*V_3 - 4 and size complexities S("evalspeedpldi3start(a, b, c, d) -> evalspeedpldi3entryin(a, b, c, d)", 0-0) = a S("evalspeedpldi3start(a, b, c, d) -> evalspeedpldi3entryin(a, b, c, d)", 0-1) = b S("evalspeedpldi3start(a, b, c, d) -> evalspeedpldi3entryin(a, b, c, d)", 0-2) = c S("evalspeedpldi3start(a, b, c, d) -> evalspeedpldi3entryin(a, b, c, d)", 0-3) = d S("evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, 0) [ a >= 1 /\\ b >= a + 1 ]", 0-0) = a S("evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, 0) [ a >= 1 /\\ b >= a + 1 ]", 0-1) = b S("evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, 0) [ a >= 1 /\\ b >= a + 1 ]", 0-2) = 0 S("evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, 0) [ a >= 1 /\\ b >= a + 1 ]", 0-3) = 0 S("evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ b >= d + 1 ]", 0-0) = a S("evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ b >= d + 1 ]", 0-1) = b S("evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ b >= d + 1 ]", 0-2) = a S("evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ b >= d + 1 ]", 0-3) = b S("evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ a >= c + 1 ]", 0-0) = a S("evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ a >= c + 1 ]", 0-1) = b S("evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ a >= c + 1 ]", 0-2) = a S("evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ a >= c + 1 ]", 0-3) = b S("evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ c >= a ]", 0-0) = a S("evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ c >= a ]", 0-1) = b S("evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ c >= a ]", 0-2) = a S("evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 /\\ c >= a ]", 0-3) = b S("evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ b - c - 2 >= 0 /\\ a - c - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 ]", 0-0) = a S("evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ b - c - 2 >= 0 /\\ a - c - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 ]", 0-1) = b S("evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ b - c - 2 >= 0 /\\ a - c - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 ]", 0-2) = a S("evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ b - c - 2 >= 0 /\\ a - c - 1 >= 0 /\\ c >= 0 /\\ b + c - 2 >= 0 /\\ a + c - 1 >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 ]", 0-3) = b S("evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d - 1 >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c - 1 >= 0 /\\ b + c - 3 >= 0 /\\ a + c - 2 >= 0 /\\ -a + c >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 ]", 0-0) = a S("evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d - 1 >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c - 1 >= 0 /\\ b + c - 3 >= 0 /\\ a + c - 2 >= 0 /\\ -a + c >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 ]", 0-1) = b S("evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d - 1 >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c - 1 >= 0 /\\ b + c - 3 >= 0 /\\ a + c - 2 >= 0 /\\ -a + c >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 ]", 0-2) = 0 S("evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) [ b - d - 1 >= 0 /\\ d >= 0 /\\ c + d - 1 >= 0 /\\ b + d - 2 >= 0 /\\ a + d - 1 >= 0 /\\ c - 1 >= 0 /\\ b + c - 3 >= 0 /\\ a + c - 2 >= 0 /\\ -a + c >= 0 /\\ b - 2 >= 0 /\\ a + b - 3 >= 0 /\\ -a + b - 1 >= 0 /\\ a - 1 >= 0 ]", 0-3) = b orients the transitions evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ b >= d + 1 ] evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ b - c - 2 >= 0 /\ a - c - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 ] evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ a >= c + 1 ] weakly and the transitions evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ b - c - 2 >= 0 /\ a - c - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 ] evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ a >= c + 1 ] strictly and produces the following problem: 6: T: (2*b + 14, 1) evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d - 1 >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c - 1 >= 0 /\ b + c - 3 >= 0 /\ a + c - 2 >= 0 /\ -a + c >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 ] (75*a + 10*a*b, 1) evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ b - c - 2 >= 0 /\ a - c - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 ] (2*b + 14, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ c >= a ] (75*a + 10*a*b, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ a >= c + 1 ] (?, 1) evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ b >= d + 1 ] (1, 1) evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, 0) [ a >= 1 /\ b >= a + 1 ] (1, 1) evalspeedpldi3start(a, b, c, d) -> evalspeedpldi3entryin(a, b, c, d) start location: evalspeedpldi3start leaf cost: 4 Repeatedly propagating knowledge in problem 6 produces the following problem: 7: T: (2*b + 14, 1) evalspeedpldi3bb4in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, d + 1) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d - 1 >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c - 1 >= 0 /\ b + c - 3 >= 0 /\ a + c - 2 >= 0 /\ -a + c >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 ] (75*a + 10*a*b, 1) evalspeedpldi3bb3in(a, b, c, d) -> evalspeedpldi3bb5in(a, b, c + 1, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ b - c - 2 >= 0 /\ a - c - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 ] (2*b + 14, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb4in(a, b, c, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ c >= a ] (75*a + 10*a*b, 1) evalspeedpldi3bb2in(a, b, c, d) -> evalspeedpldi3bb3in(a, b, c, d) [ b - d - 1 >= 0 /\ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ a >= c + 1 ] (75*a + 10*a*b + 2*b + 15, 1) evalspeedpldi3bb5in(a, b, c, d) -> evalspeedpldi3bb2in(a, b, c, d) [ d >= 0 /\ c + d >= 0 /\ b + d - 2 >= 0 /\ a + d - 1 >= 0 /\ c >= 0 /\ b + c - 2 >= 0 /\ a + c - 1 >= 0 /\ b - 2 >= 0 /\ a + b - 3 >= 0 /\ -a + b - 1 >= 0 /\ a - 1 >= 0 /\ b >= d + 1 ] (1, 1) evalspeedpldi3entryin(a, b, c, d) -> evalspeedpldi3bb5in(a, b, 0, 0) [ a >= 1 /\ b >= a + 1 ] (1, 1) evalspeedpldi3start(a, b, c, d) -> evalspeedpldi3entryin(a, b, c, d) start location: evalspeedpldi3start leaf cost: 4 Complexity upper bound 6*b + 225*a + 30*a*b + 49 Time: 0.463 sec (SMT: 0.427 sec)