YES(?, b + c + 4) Initial complexity problem: 1: T: (1, 1) f3(a, b, c, d) -> f1(0, b, c, d) (?, 1) f1(a, b, c, d) -> f2(a, b, c, e) [ b >= c ] (?, 1) f1(a, b, c, d) -> f2(1, b + 1, c, e) [ 0 >= a /\ b + 1 = c ] (?, 1) f1(a, b, c, d) -> f1(0, b + 1, c - 1, d) [ c >= b + 1 /\ 0 >= a /\ c >= b + 2 ] start location: f3 leaf cost: 0 Repeatedly removing leaves of the complexity graph in problem 1 produces the following problem: 2: T: (1, 1) f3(a, b, c, d) -> f1(0, b, c, d) (?, 1) f1(a, b, c, d) -> f1(0, b + 1, c - 1, d) [ c >= b + 1 /\ 0 >= a /\ c >= b + 2 ] start location: f3 leaf cost: 2 A polynomial rank function with Pol(f3) = -V_2 + V_3 - 1 Pol(f1) = -V_2 + V_3 - 1 orients all transitions weakly and the transition f1(a, b, c, d) -> f1(0, b + 1, c - 1, d) [ c >= b + 1 /\ 0 >= a /\ c >= b + 2 ] strictly and produces the following problem: 3: T: (1, 1) f3(a, b, c, d) -> f1(0, b, c, d) (b + c + 1, 1) f1(a, b, c, d) -> f1(0, b + 1, c - 1, d) [ c >= b + 1 /\ 0 >= a /\ c >= b + 2 ] start location: f3 leaf cost: 2 Complexity upper bound b + c + 4 Time: 0.096 sec (SMT: 0.090 sec)