YES(?, a + e + 207) Initial complexity problem: 1: T: (?, 1) start(a, b, c, d, e, f, g, h) -> stop(a, b, c, d, e, f, g, h) [ a >= 101 /\ b = c /\ d = e /\ f = a /\ g = h ] (?, 1) start(a, b, c, d, e, f, g, h) -> stop(a, b, c, d, e, f, g, h) [ e >= c + 1 /\ b = c /\ d = e /\ f = a /\ g = h ] (?, 1) start(a, b, c, d, e, f, g, h) -> lbl72(a, b - 1, c, f + 1, e, d, f, h) [ c >= e /\ 100 >= a /\ b = c /\ d = e /\ f = a /\ g = h ] (?, 1) lbl72(a, b, c, d, e, f, g, h) -> stop(a, b, c, d, e, f, g, h) [ f >= 101 /\ 100 >= a /\ f + b + 101 >= a + e + c /\ b + 1 >= f /\ c >= b + 1 /\ c >= e /\ g + f + b + 1 = a + e + c /\ d + f + b = a + e + c ] (?, 1) lbl72(a, b, c, d, e, f, g, h) -> stop(a, b, c, d, e, f, g, h) [ a + e + c >= f + 2*b + 1 /\ 100 >= a /\ f + b + 101 >= a + e + c /\ b + 1 >= f /\ c >= b + 1 /\ c >= e /\ g + f + b + 1 = a + e + c /\ d + f + b = a + e + c ] (?, 1) lbl72(a, b, c, d, e, f, g, h) -> lbl72(a, b - 1, c, f + 1, e, d, f, h) [ 2*b + f >= a + e + c /\ 100 >= f /\ 100 >= a /\ f + b + 101 >= a + e + c /\ b + 1 >= f /\ c >= b + 1 /\ c >= e /\ g + f + b + 1 = a + e + c /\ d + f + b = a + e + c ] (1, 1) start0(a, b, c, d, e, f, g, h) -> start(a, c, c, e, e, a, h, h) start location: start0 leaf cost: 0 Repeatedly removing leaves of the complexity graph in problem 1 produces the following problem: 2: T: (?, 1) start(a, b, c, d, e, f, g, h) -> lbl72(a, b - 1, c, f + 1, e, d, f, h) [ c >= e /\ 100 >= a /\ b = c /\ d = e /\ f = a /\ g = h ] (?, 1) lbl72(a, b, c, d, e, f, g, h) -> lbl72(a, b - 1, c, f + 1, e, d, f, h) [ 2*b + f >= a + e + c /\ 100 >= f /\ 100 >= a /\ f + b + 101 >= a + e + c /\ b + 1 >= f /\ c >= b + 1 /\ c >= e /\ g + f + b + 1 = a + e + c /\ d + f + b = a + e + c ] (1, 1) start0(a, b, c, d, e, f, g, h) -> start(a, c, c, e, e, a, h, h) start location: start0 leaf cost: 4 Repeatedly propagating knowledge in problem 2 produces the following problem: 3: T: (1, 1) start(a, b, c, d, e, f, g, h) -> lbl72(a, b - 1, c, f + 1, e, d, f, h) [ c >= e /\ 100 >= a /\ b = c /\ d = e /\ f = a /\ g = h ] (?, 1) lbl72(a, b, c, d, e, f, g, h) -> lbl72(a, b - 1, c, f + 1, e, d, f, h) [ 2*b + f >= a + e + c /\ 100 >= f /\ 100 >= a /\ f + b + 101 >= a + e + c /\ b + 1 >= f /\ c >= b + 1 /\ c >= e /\ g + f + b + 1 = a + e + c /\ d + f + b = a + e + c ] (1, 1) start0(a, b, c, d, e, f, g, h) -> start(a, c, c, e, e, a, h, h) start location: start0 leaf cost: 4 A polynomial rank function with Pol(start) = -V_4 - V_6 + 201 Pol(lbl72) = -V_4 - V_6 + 202 Pol(start0) = -V_1 - V_5 + 201 orients all transitions weakly and the transition lbl72(a, b, c, d, e, f, g, h) -> lbl72(a, b - 1, c, f + 1, e, d, f, h) [ 2*b + f >= a + e + c /\ 100 >= f /\ 100 >= a /\ f + b + 101 >= a + e + c /\ b + 1 >= f /\ c >= b + 1 /\ c >= e /\ g + f + b + 1 = a + e + c /\ d + f + b = a + e + c ] strictly and produces the following problem: 4: T: (1, 1) start(a, b, c, d, e, f, g, h) -> lbl72(a, b - 1, c, f + 1, e, d, f, h) [ c >= e /\ 100 >= a /\ b = c /\ d = e /\ f = a /\ g = h ] (a + e + 201, 1) lbl72(a, b, c, d, e, f, g, h) -> lbl72(a, b - 1, c, f + 1, e, d, f, h) [ 2*b + f >= a + e + c /\ 100 >= f /\ 100 >= a /\ f + b + 101 >= a + e + c /\ b + 1 >= f /\ c >= b + 1 /\ c >= e /\ g + f + b + 1 = a + e + c /\ d + f + b = a + e + c ] (1, 1) start0(a, b, c, d, e, f, g, h) -> start(a, c, c, e, e, a, h, h) start location: start0 leaf cost: 4 Complexity upper bound a + e + 207 Time: 0.271 sec (SMT: 0.255 sec)