YES(?, 44*a + 26) Initial complexity problem: 1: T: (1, 1) evalwcet1start(a, b, c, d) -> evalwcet1entryin(a, b, c, d) (?, 1) evalwcet1entryin(a, b, c, d) -> evalwcet1bbin(a, 0, a, d) [ a >= 1 ] (?, 1) evalwcet1entryin(a, b, c, d) -> evalwcet1returnin(a, b, c, d) [ 0 >= a ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb1in(a, b, c, d) [ 0 >= e + 1 ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb1in(a, b, c, d) [ e >= 1 ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb4in(a, b, c, d) (?, 1) evalwcet1bb1in(a, b, c, d) -> evalwcet1bb6in(a, b, c, 0) [ b + 1 >= a ] (?, 1) evalwcet1bb1in(a, b, c, d) -> evalwcet1bb6in(a, b, c, b + 1) [ a >= b + 2 ] (?, 1) evalwcet1bb4in(a, b, c, d) -> evalwcet1bb5in(a, b, c, d) [ 1 >= b ] (?, 1) evalwcet1bb4in(a, b, c, d) -> evalwcet1bb6in(a, b, c, b - 1) [ b >= 2 ] (?, 1) evalwcet1bb5in(a, b, c, d) -> evalwcet1bb6in(a, b, c, 0) (?, 1) evalwcet1bb6in(a, b, c, d) -> evalwcet1bbin(a, d, c - 1, d) [ c >= 2 ] (?, 1) evalwcet1bb6in(a, b, c, d) -> evalwcet1returnin(a, b, c, d) [ 1 >= c ] (?, 1) evalwcet1returnin(a, b, c, d) -> evalwcet1stop(a, b, c, d) start location: evalwcet1start leaf cost: 0 Repeatedly removing leaves of the complexity graph in problem 1 produces the following problem: 2: T: (1, 1) evalwcet1start(a, b, c, d) -> evalwcet1entryin(a, b, c, d) (?, 1) evalwcet1entryin(a, b, c, d) -> evalwcet1bbin(a, 0, a, d) [ a >= 1 ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb1in(a, b, c, d) [ 0 >= e + 1 ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb1in(a, b, c, d) [ e >= 1 ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb4in(a, b, c, d) (?, 1) evalwcet1bb1in(a, b, c, d) -> evalwcet1bb6in(a, b, c, 0) [ b + 1 >= a ] (?, 1) evalwcet1bb1in(a, b, c, d) -> evalwcet1bb6in(a, b, c, b + 1) [ a >= b + 2 ] (?, 1) evalwcet1bb4in(a, b, c, d) -> evalwcet1bb5in(a, b, c, d) [ 1 >= b ] (?, 1) evalwcet1bb4in(a, b, c, d) -> evalwcet1bb6in(a, b, c, b - 1) [ b >= 2 ] (?, 1) evalwcet1bb5in(a, b, c, d) -> evalwcet1bb6in(a, b, c, 0) (?, 1) evalwcet1bb6in(a, b, c, d) -> evalwcet1bbin(a, d, c - 1, d) [ c >= 2 ] start location: evalwcet1start leaf cost: 3 Repeatedly propagating knowledge in problem 2 produces the following problem: 3: T: (1, 1) evalwcet1start(a, b, c, d) -> evalwcet1entryin(a, b, c, d) (1, 1) evalwcet1entryin(a, b, c, d) -> evalwcet1bbin(a, 0, a, d) [ a >= 1 ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb1in(a, b, c, d) [ 0 >= e + 1 ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb1in(a, b, c, d) [ e >= 1 ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb4in(a, b, c, d) (?, 1) evalwcet1bb1in(a, b, c, d) -> evalwcet1bb6in(a, b, c, 0) [ b + 1 >= a ] (?, 1) evalwcet1bb1in(a, b, c, d) -> evalwcet1bb6in(a, b, c, b + 1) [ a >= b + 2 ] (?, 1) evalwcet1bb4in(a, b, c, d) -> evalwcet1bb5in(a, b, c, d) [ 1 >= b ] (?, 1) evalwcet1bb4in(a, b, c, d) -> evalwcet1bb6in(a, b, c, b - 1) [ b >= 2 ] (?, 1) evalwcet1bb5in(a, b, c, d) -> evalwcet1bb6in(a, b, c, 0) (?, 1) evalwcet1bb6in(a, b, c, d) -> evalwcet1bbin(a, d, c - 1, d) [ c >= 2 ] start location: evalwcet1start leaf cost: 3 A polynomial rank function with Pol(evalwcet1start) = 4*V_1 - 1 Pol(evalwcet1entryin) = 4*V_1 - 1 Pol(evalwcet1bbin) = 4*V_3 - 1 Pol(evalwcet1bb1in) = 4*V_3 - 3 Pol(evalwcet1bb4in) = 4*V_3 - 2 Pol(evalwcet1bb6in) = 4*V_3 - 4 Pol(evalwcet1bb5in) = 4*V_3 - 3 orients all transitions weakly and the transition evalwcet1bb6in(a, b, c, d) -> evalwcet1bbin(a, d, c - 1, d) [ c >= 2 ] strictly and produces the following problem: 4: T: (1, 1) evalwcet1start(a, b, c, d) -> evalwcet1entryin(a, b, c, d) (1, 1) evalwcet1entryin(a, b, c, d) -> evalwcet1bbin(a, 0, a, d) [ a >= 1 ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb1in(a, b, c, d) [ 0 >= e + 1 ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb1in(a, b, c, d) [ e >= 1 ] (?, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb4in(a, b, c, d) (?, 1) evalwcet1bb1in(a, b, c, d) -> evalwcet1bb6in(a, b, c, 0) [ b + 1 >= a ] (?, 1) evalwcet1bb1in(a, b, c, d) -> evalwcet1bb6in(a, b, c, b + 1) [ a >= b + 2 ] (?, 1) evalwcet1bb4in(a, b, c, d) -> evalwcet1bb5in(a, b, c, d) [ 1 >= b ] (?, 1) evalwcet1bb4in(a, b, c, d) -> evalwcet1bb6in(a, b, c, b - 1) [ b >= 2 ] (?, 1) evalwcet1bb5in(a, b, c, d) -> evalwcet1bb6in(a, b, c, 0) (4*a + 1, 1) evalwcet1bb6in(a, b, c, d) -> evalwcet1bbin(a, d, c - 1, d) [ c >= 2 ] start location: evalwcet1start leaf cost: 3 Repeatedly propagating knowledge in problem 4 produces the following problem: 5: T: (1, 1) evalwcet1start(a, b, c, d) -> evalwcet1entryin(a, b, c, d) (1, 1) evalwcet1entryin(a, b, c, d) -> evalwcet1bbin(a, 0, a, d) [ a >= 1 ] (4*a + 2, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb1in(a, b, c, d) [ 0 >= e + 1 ] (4*a + 2, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb1in(a, b, c, d) [ e >= 1 ] (4*a + 2, 1) evalwcet1bbin(a, b, c, d) -> evalwcet1bb4in(a, b, c, d) (8*a + 4, 1) evalwcet1bb1in(a, b, c, d) -> evalwcet1bb6in(a, b, c, 0) [ b + 1 >= a ] (8*a + 4, 1) evalwcet1bb1in(a, b, c, d) -> evalwcet1bb6in(a, b, c, b + 1) [ a >= b + 2 ] (4*a + 2, 1) evalwcet1bb4in(a, b, c, d) -> evalwcet1bb5in(a, b, c, d) [ 1 >= b ] (4*a + 2, 1) evalwcet1bb4in(a, b, c, d) -> evalwcet1bb6in(a, b, c, b - 1) [ b >= 2 ] (4*a + 2, 1) evalwcet1bb5in(a, b, c, d) -> evalwcet1bb6in(a, b, c, 0) (4*a + 1, 1) evalwcet1bb6in(a, b, c, d) -> evalwcet1bbin(a, d, c - 1, d) [ c >= 2 ] start location: evalwcet1start leaf cost: 3 Complexity upper bound 44*a + 26 Time: 0.358 sec (SMT: 0.337 sec)