YES(?, 21*b + 6) Initial complexity problem: 1: T: (1, 1) evalSequentialSinglestart(a, b) -> evalSequentialSingleentryin(a, b) (?, 1) evalSequentialSingleentryin(a, b) -> evalSequentialSinglebb1in(0, b) (?, 1) evalSequentialSinglebb1in(a, b) -> evalSequentialSinglebb5in(a, b) [ a >= b ] (?, 1) evalSequentialSinglebb1in(a, b) -> evalSequentialSinglebb2in(a, b) [ b >= a + 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ 0 >= c + 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ c >= 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebb5in(a, b) (?, 1) evalSequentialSinglebbin(a, b) -> evalSequentialSinglebb1in(a + 1, b) (?, 1) evalSequentialSinglebb5in(a, b) -> evalSequentialSinglebb4in(a, b) [ b >= a + 1 ] (?, 1) evalSequentialSinglebb5in(a, b) -> evalSequentialSinglereturnin(a, b) [ a >= b ] (?, 1) evalSequentialSinglebb4in(a, b) -> evalSequentialSinglebb5in(a + 1, b) (?, 1) evalSequentialSinglereturnin(a, b) -> evalSequentialSinglestop(a, b) start location: evalSequentialSinglestart leaf cost: 0 Repeatedly removing leaves of the complexity graph in problem 1 produces the following problem: 2: T: (1, 1) evalSequentialSinglestart(a, b) -> evalSequentialSingleentryin(a, b) (?, 1) evalSequentialSingleentryin(a, b) -> evalSequentialSinglebb1in(0, b) (?, 1) evalSequentialSinglebb1in(a, b) -> evalSequentialSinglebb2in(a, b) [ b >= a + 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ 0 >= c + 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ c >= 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebb5in(a, b) (?, 1) evalSequentialSinglebbin(a, b) -> evalSequentialSinglebb1in(a + 1, b) (?, 1) evalSequentialSinglebb5in(a, b) -> evalSequentialSinglebb4in(a, b) [ b >= a + 1 ] (?, 1) evalSequentialSinglebb4in(a, b) -> evalSequentialSinglebb5in(a + 1, b) start location: evalSequentialSinglestart leaf cost: 3 Repeatedly propagating knowledge in problem 2 produces the following problem: 3: T: (1, 1) evalSequentialSinglestart(a, b) -> evalSequentialSingleentryin(a, b) (1, 1) evalSequentialSingleentryin(a, b) -> evalSequentialSinglebb1in(0, b) (?, 1) evalSequentialSinglebb1in(a, b) -> evalSequentialSinglebb2in(a, b) [ b >= a + 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ 0 >= c + 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ c >= 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebb5in(a, b) (?, 1) evalSequentialSinglebbin(a, b) -> evalSequentialSinglebb1in(a + 1, b) (?, 1) evalSequentialSinglebb5in(a, b) -> evalSequentialSinglebb4in(a, b) [ b >= a + 1 ] (?, 1) evalSequentialSinglebb4in(a, b) -> evalSequentialSinglebb5in(a + 1, b) start location: evalSequentialSinglestart leaf cost: 3 A polynomial rank function with Pol(evalSequentialSinglestart) = 1 Pol(evalSequentialSingleentryin) = 1 Pol(evalSequentialSinglebb1in) = 1 Pol(evalSequentialSinglebb2in) = 1 Pol(evalSequentialSinglebbin) = 1 Pol(evalSequentialSinglebb5in) = -1 Pol(evalSequentialSinglebb4in) = -1 orients all transitions weakly and the transition evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebb5in(a, b) strictly and produces the following problem: 4: T: (1, 1) evalSequentialSinglestart(a, b) -> evalSequentialSingleentryin(a, b) (1, 1) evalSequentialSingleentryin(a, b) -> evalSequentialSinglebb1in(0, b) (?, 1) evalSequentialSinglebb1in(a, b) -> evalSequentialSinglebb2in(a, b) [ b >= a + 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ 0 >= c + 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ c >= 1 ] (1, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebb5in(a, b) (?, 1) evalSequentialSinglebbin(a, b) -> evalSequentialSinglebb1in(a + 1, b) (?, 1) evalSequentialSinglebb5in(a, b) -> evalSequentialSinglebb4in(a, b) [ b >= a + 1 ] (?, 1) evalSequentialSinglebb4in(a, b) -> evalSequentialSinglebb5in(a + 1, b) start location: evalSequentialSinglestart leaf cost: 3 A polynomial rank function with Pol(evalSequentialSinglestart) = 3*V_2 Pol(evalSequentialSingleentryin) = 3*V_2 Pol(evalSequentialSinglebb1in) = -3*V_1 + 3*V_2 Pol(evalSequentialSinglebb2in) = -3*V_1 + 3*V_2 - 1 Pol(evalSequentialSinglebbin) = -3*V_1 + 3*V_2 - 2 Pol(evalSequentialSinglebb5in) = -3*V_1 + 3*V_2 - 1 Pol(evalSequentialSinglebb4in) = -3*V_1 + 3*V_2 - 2 orients all transitions weakly and the transitions evalSequentialSinglebb5in(a, b) -> evalSequentialSinglebb4in(a, b) [ b >= a + 1 ] evalSequentialSinglebb1in(a, b) -> evalSequentialSinglebb2in(a, b) [ b >= a + 1 ] strictly and produces the following problem: 5: T: (1, 1) evalSequentialSinglestart(a, b) -> evalSequentialSingleentryin(a, b) (1, 1) evalSequentialSingleentryin(a, b) -> evalSequentialSinglebb1in(0, b) (3*b, 1) evalSequentialSinglebb1in(a, b) -> evalSequentialSinglebb2in(a, b) [ b >= a + 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ 0 >= c + 1 ] (?, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ c >= 1 ] (1, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebb5in(a, b) (?, 1) evalSequentialSinglebbin(a, b) -> evalSequentialSinglebb1in(a + 1, b) (3*b, 1) evalSequentialSinglebb5in(a, b) -> evalSequentialSinglebb4in(a, b) [ b >= a + 1 ] (?, 1) evalSequentialSinglebb4in(a, b) -> evalSequentialSinglebb5in(a + 1, b) start location: evalSequentialSinglestart leaf cost: 3 Repeatedly propagating knowledge in problem 5 produces the following problem: 6: T: (1, 1) evalSequentialSinglestart(a, b) -> evalSequentialSingleentryin(a, b) (1, 1) evalSequentialSingleentryin(a, b) -> evalSequentialSinglebb1in(0, b) (3*b, 1) evalSequentialSinglebb1in(a, b) -> evalSequentialSinglebb2in(a, b) [ b >= a + 1 ] (3*b, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ 0 >= c + 1 ] (3*b, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebbin(a, b) [ c >= 1 ] (1, 1) evalSequentialSinglebb2in(a, b) -> evalSequentialSinglebb5in(a, b) (6*b, 1) evalSequentialSinglebbin(a, b) -> evalSequentialSinglebb1in(a + 1, b) (3*b, 1) evalSequentialSinglebb5in(a, b) -> evalSequentialSinglebb4in(a, b) [ b >= a + 1 ] (3*b, 1) evalSequentialSinglebb4in(a, b) -> evalSequentialSinglebb5in(a + 1, b) start location: evalSequentialSinglestart leaf cost: 3 Complexity upper bound 21*b + 6 Time: 0.199 sec (SMT: 0.189 sec)