YES(?, 23*c + 12*c^2 + 14) Initial complexity problem: 1: T: (1, 1) evalaxstart(a, b, c) -> evalaxentryin(a, b, c) (?, 1) evalaxentryin(a, b, c) -> evalaxbbin(0, b, c) (?, 1) evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c) (?, 1) evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ] (?, 1) evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ] (?, 1) evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c) (?, 1) evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\ c >= a + 3 ] (?, 1) evalaxbb3in(a, b, c) -> evalaxreturnin(a, b, c) [ c >= b + 2 ] (?, 1) evalaxbb3in(a, b, c) -> evalaxreturnin(a, b, c) [ a + 2 >= c ] (?, 1) evalaxreturnin(a, b, c) -> evalaxstop(a, b, c) start location: evalaxstart leaf cost: 0 Repeatedly removing leaves of the complexity graph in problem 1 produces the following problem: 2: T: (1, 1) evalaxstart(a, b, c) -> evalaxentryin(a, b, c) (?, 1) evalaxentryin(a, b, c) -> evalaxbbin(0, b, c) (?, 1) evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c) (?, 1) evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ] (?, 1) evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ] (?, 1) evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c) (?, 1) evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\ c >= a + 3 ] start location: evalaxstart leaf cost: 3 Repeatedly propagating knowledge in problem 2 produces the following problem: 3: T: (1, 1) evalaxstart(a, b, c) -> evalaxentryin(a, b, c) (1, 1) evalaxentryin(a, b, c) -> evalaxbbin(0, b, c) (?, 1) evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c) (?, 1) evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ] (?, 1) evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ] (?, 1) evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c) (?, 1) evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\ c >= a + 3 ] start location: evalaxstart leaf cost: 3 A polynomial rank function with Pol(evalaxstart) = 3*V_3 - 1 Pol(evalaxentryin) = 3*V_3 - 1 Pol(evalaxbbin) = -3*V_1 + 3*V_3 - 1 Pol(evalaxbb2in) = -3*V_1 + 3*V_3 - 2 Pol(evalaxbb1in) = -3*V_1 + 3*V_3 - 2 Pol(evalaxbb3in) = -3*V_1 + 3*V_3 - 3 orients all transitions weakly and the transition evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\ c >= a + 3 ] strictly and produces the following problem: 4: T: (1, 1) evalaxstart(a, b, c) -> evalaxentryin(a, b, c) (1, 1) evalaxentryin(a, b, c) -> evalaxbbin(0, b, c) (?, 1) evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c) (?, 1) evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ] (?, 1) evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ] (?, 1) evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c) (3*c + 1, 1) evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\ c >= a + 3 ] start location: evalaxstart leaf cost: 3 Repeatedly propagating knowledge in problem 4 produces the following problem: 5: T: (1, 1) evalaxstart(a, b, c) -> evalaxentryin(a, b, c) (1, 1) evalaxentryin(a, b, c) -> evalaxbbin(0, b, c) (3*c + 2, 1) evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c) (?, 1) evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ] (?, 1) evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ] (?, 1) evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c) (3*c + 1, 1) evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\ c >= a + 3 ] start location: evalaxstart leaf cost: 3 A polynomial rank function with Pol(evalaxbb2in) = 1 Pol(evalaxbb3in) = 0 Pol(evalaxbb1in) = 1 and size complexities S("evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\\ c >= a + 3 ]", 0-0) = 3*c + 9 S("evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\\ c >= a + 3 ]", 0-1) = ? S("evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\\ c >= a + 3 ]", 0-2) = c S("evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c)", 0-0) = 3*c + 9 S("evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c)", 0-1) = ? S("evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c)", 0-2) = c S("evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ]", 0-0) = 3*c + 9 S("evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ]", 0-1) = ? S("evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ]", 0-2) = c S("evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ]", 0-0) = 3*c + 9 S("evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ]", 0-1) = ? S("evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ]", 0-2) = c S("evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c)", 0-0) = 3*c + 9 S("evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c)", 0-1) = 0 S("evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c)", 0-2) = c S("evalaxentryin(a, b, c) -> evalaxbbin(0, b, c)", 0-0) = 0 S("evalaxentryin(a, b, c) -> evalaxbbin(0, b, c)", 0-1) = b S("evalaxentryin(a, b, c) -> evalaxbbin(0, b, c)", 0-2) = c S("evalaxstart(a, b, c) -> evalaxentryin(a, b, c)", 0-0) = a S("evalaxstart(a, b, c) -> evalaxentryin(a, b, c)", 0-1) = b S("evalaxstart(a, b, c) -> evalaxentryin(a, b, c)", 0-2) = c orients the transitions evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ] evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ] evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c) weakly and the transition evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ] strictly and produces the following problem: 6: T: (1, 1) evalaxstart(a, b, c) -> evalaxentryin(a, b, c) (1, 1) evalaxentryin(a, b, c) -> evalaxbbin(0, b, c) (3*c + 2, 1) evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c) (?, 1) evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ] (3*c + 2, 1) evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ] (?, 1) evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c) (3*c + 1, 1) evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\ c >= a + 3 ] start location: evalaxstart leaf cost: 3 A polynomial rank function with Pol(evalaxbb2in) = -2*V_2 + 2*V_3 + 1 Pol(evalaxbb1in) = -2*V_2 + 2*V_3 and size complexities S("evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\\ c >= a + 3 ]", 0-0) = 3*c + 9 S("evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\\ c >= a + 3 ]", 0-1) = ? S("evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\\ c >= a + 3 ]", 0-2) = c S("evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c)", 0-0) = 3*c + 9 S("evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c)", 0-1) = ? S("evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c)", 0-2) = c S("evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ]", 0-0) = 3*c + 9 S("evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ]", 0-1) = ? S("evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ]", 0-2) = c S("evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ]", 0-0) = 3*c + 9 S("evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ]", 0-1) = ? S("evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ]", 0-2) = c S("evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c)", 0-0) = 3*c + 9 S("evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c)", 0-1) = 0 S("evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c)", 0-2) = c S("evalaxentryin(a, b, c) -> evalaxbbin(0, b, c)", 0-0) = 0 S("evalaxentryin(a, b, c) -> evalaxbbin(0, b, c)", 0-1) = b S("evalaxentryin(a, b, c) -> evalaxbbin(0, b, c)", 0-2) = c S("evalaxstart(a, b, c) -> evalaxentryin(a, b, c)", 0-0) = a S("evalaxstart(a, b, c) -> evalaxentryin(a, b, c)", 0-1) = b S("evalaxstart(a, b, c) -> evalaxentryin(a, b, c)", 0-2) = c orients the transitions evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ] evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c) weakly and the transition evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ] strictly and produces the following problem: 7: T: (1, 1) evalaxstart(a, b, c) -> evalaxentryin(a, b, c) (1, 1) evalaxentryin(a, b, c) -> evalaxbbin(0, b, c) (3*c + 2, 1) evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c) (6*c^2 + 7*c + 2, 1) evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ] (3*c + 2, 1) evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ] (?, 1) evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c) (3*c + 1, 1) evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\ c >= a + 3 ] start location: evalaxstart leaf cost: 3 Repeatedly propagating knowledge in problem 7 produces the following problem: 8: T: (1, 1) evalaxstart(a, b, c) -> evalaxentryin(a, b, c) (1, 1) evalaxentryin(a, b, c) -> evalaxbbin(0, b, c) (3*c + 2, 1) evalaxbbin(a, b, c) -> evalaxbb2in(a, 0, c) (6*c^2 + 7*c + 2, 1) evalaxbb2in(a, b, c) -> evalaxbb1in(a, b, c) [ c >= b + 2 ] (3*c + 2, 1) evalaxbb2in(a, b, c) -> evalaxbb3in(a, b, c) [ b + 1 >= c ] (6*c^2 + 7*c + 2, 1) evalaxbb1in(a, b, c) -> evalaxbb2in(a, b + 1, c) (3*c + 1, 1) evalaxbb3in(a, b, c) -> evalaxbbin(a + 1, b, c) [ b + 1 >= c /\ c >= a + 3 ] start location: evalaxstart leaf cost: 3 Complexity upper bound 23*c + 12*c^2 + 14 Time: 0.189 sec (SMT: 0.177 sec)