YES(?, 44*a + 221) 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 >= 5 /\ b = c /\ d = e /\ f = g /\ h = a ] (?, 1) start(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, 0, g, h + 1) [ 2 >= a /\ b = c /\ d = e /\ f = g /\ h = a ] (?, 1) start(a, b, c, d, e, f, g, h) -> lbl82(a, 0, c, d, e, 1, g, h) [ a >= 3 /\ 4 >= a /\ b = c /\ d = e /\ f = g /\ h = a ] (?, 1) lbl92(a, b, c, d, e, f, g, h) -> stop(a, b, c, d, e, f, g, h) [ d >= 4 /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (?, 1) lbl92(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, 0, g, h + 1) [ 1 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (?, 1) lbl92(a, b, c, d, e, f, g, h) -> lbl82(a, 0, c, d, e, 1, g, h) [ d >= 2 /\ 3 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (?, 1) lbl82(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, f, g, h + 1) [ 2 >= h /\ 9 >= b /\ b >= 0 /\ h >= a /\ h >= 3 /\ 4 >= h /\ f = b + 1 ] (?, 1) lbl82(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, f, g, h + 1) [ h >= a /\ h >= 3 /\ 4 >= h /\ f = 10 /\ b = 9 ] (?, 1) lbl82(a, b, c, d, e, f, g, h) -> lbl82(a, f, c, d, e, f + 1, g, h) [ h >= 3 /\ 8 >= b /\ 9 >= b /\ b >= 0 /\ h >= a /\ 4 >= h /\ f = b + 1 ] (1, 1) start0(a, b, c, d, e, f, g, h) -> start(a, c, c, e, e, g, g, a) start location: start0 leaf cost: 0 Testing for unsatisfiable constraints removes the following transition from problem 1: lbl82(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, f, g, h + 1) [ 2 >= h /\ 9 >= b /\ b >= 0 /\ h >= a /\ h >= 3 /\ 4 >= h /\ f = b + 1 ] We thus obtain the following problem: 2: T: (?, 1) start(a, b, c, d, e, f, g, h) -> stop(a, b, c, d, e, f, g, h) [ a >= 5 /\ b = c /\ d = e /\ f = g /\ h = a ] (?, 1) start(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, 0, g, h + 1) [ 2 >= a /\ b = c /\ d = e /\ f = g /\ h = a ] (?, 1) start(a, b, c, d, e, f, g, h) -> lbl82(a, 0, c, d, e, 1, g, h) [ a >= 3 /\ 4 >= a /\ b = c /\ d = e /\ f = g /\ h = a ] (?, 1) lbl92(a, b, c, d, e, f, g, h) -> stop(a, b, c, d, e, f, g, h) [ d >= 4 /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (?, 1) lbl92(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, 0, g, h + 1) [ 1 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (?, 1) lbl92(a, b, c, d, e, f, g, h) -> lbl82(a, 0, c, d, e, 1, g, h) [ d >= 2 /\ 3 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (?, 1) lbl82(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, f, g, h + 1) [ h >= a /\ h >= 3 /\ 4 >= h /\ f = 10 /\ b = 9 ] (?, 1) lbl82(a, b, c, d, e, f, g, h) -> lbl82(a, f, c, d, e, f + 1, g, h) [ h >= 3 /\ 8 >= b /\ 9 >= b /\ b >= 0 /\ h >= a /\ 4 >= h /\ f = b + 1 ] (1, 1) start0(a, b, c, d, e, f, g, h) -> start(a, c, c, e, e, g, g, a) start location: start0 leaf cost: 0 Repeatedly removing leaves of the complexity graph in problem 2 produces the following problem: 3: T: (?, 1) start(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, 0, g, h + 1) [ 2 >= a /\ b = c /\ d = e /\ f = g /\ h = a ] (?, 1) start(a, b, c, d, e, f, g, h) -> lbl82(a, 0, c, d, e, 1, g, h) [ a >= 3 /\ 4 >= a /\ b = c /\ d = e /\ f = g /\ h = a ] (?, 1) lbl92(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, 0, g, h + 1) [ 1 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (?, 1) lbl92(a, b, c, d, e, f, g, h) -> lbl82(a, 0, c, d, e, 1, g, h) [ d >= 2 /\ 3 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (?, 1) lbl82(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, f, g, h + 1) [ h >= a /\ h >= 3 /\ 4 >= h /\ f = 10 /\ b = 9 ] (?, 1) lbl82(a, b, c, d, e, f, g, h) -> lbl82(a, f, c, d, e, f + 1, g, h) [ h >= 3 /\ 8 >= b /\ 9 >= b /\ b >= 0 /\ h >= a /\ 4 >= h /\ f = b + 1 ] (1, 1) start0(a, b, c, d, e, f, g, h) -> start(a, c, c, e, e, g, g, a) start location: start0 leaf cost: 2 Repeatedly propagating knowledge in problem 3 produces the following problem: 4: T: (1, 1) start(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, 0, g, h + 1) [ 2 >= a /\ b = c /\ d = e /\ f = g /\ h = a ] (1, 1) start(a, b, c, d, e, f, g, h) -> lbl82(a, 0, c, d, e, 1, g, h) [ a >= 3 /\ 4 >= a /\ b = c /\ d = e /\ f = g /\ h = a ] (?, 1) lbl92(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, 0, g, h + 1) [ 1 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (?, 1) lbl92(a, b, c, d, e, f, g, h) -> lbl82(a, 0, c, d, e, 1, g, h) [ d >= 2 /\ 3 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (?, 1) lbl82(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, f, g, h + 1) [ h >= a /\ h >= 3 /\ 4 >= h /\ f = 10 /\ b = 9 ] (?, 1) lbl82(a, b, c, d, e, f, g, h) -> lbl82(a, f, c, d, e, f + 1, g, h) [ h >= 3 /\ 8 >= b /\ 9 >= b /\ b >= 0 /\ h >= a /\ 4 >= h /\ f = b + 1 ] (1, 1) start0(a, b, c, d, e, f, g, h) -> start(a, c, c, e, e, g, g, a) start location: start0 leaf cost: 2 A polynomial rank function with Pol(start) = -11*V_8 + 54 Pol(lbl92) = -11*V_8 + 55 Pol(lbl82) = -V_6 - 11*V_8 + 55 Pol(start0) = -11*V_1 + 54 orients all transitions weakly and the transitions lbl92(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, 0, g, h + 1) [ 1 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] lbl92(a, b, c, d, e, f, g, h) -> lbl82(a, 0, c, d, e, 1, g, h) [ d >= 2 /\ 3 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] lbl82(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, f, g, h + 1) [ h >= a /\ h >= 3 /\ 4 >= h /\ f = 10 /\ b = 9 ] lbl82(a, b, c, d, e, f, g, h) -> lbl82(a, f, c, d, e, f + 1, g, h) [ h >= 3 /\ 8 >= b /\ 9 >= b /\ b >= 0 /\ h >= a /\ 4 >= h /\ f = b + 1 ] strictly and produces the following problem: 5: T: (1, 1) start(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, 0, g, h + 1) [ 2 >= a /\ b = c /\ d = e /\ f = g /\ h = a ] (1, 1) start(a, b, c, d, e, f, g, h) -> lbl82(a, 0, c, d, e, 1, g, h) [ a >= 3 /\ 4 >= a /\ b = c /\ d = e /\ f = g /\ h = a ] (11*a + 54, 1) lbl92(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, 0, g, h + 1) [ 1 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (11*a + 54, 1) lbl92(a, b, c, d, e, f, g, h) -> lbl82(a, 0, c, d, e, 1, g, h) [ d >= 2 /\ 3 >= d /\ d >= a /\ f + 10 >= 5*d /\ f >= 0 /\ h = d + 1 ] (11*a + 54, 1) lbl82(a, b, c, d, e, f, g, h) -> lbl92(a, b, c, h, e, f, g, h + 1) [ h >= a /\ h >= 3 /\ 4 >= h /\ f = 10 /\ b = 9 ] (11*a + 54, 1) lbl82(a, b, c, d, e, f, g, h) -> lbl82(a, f, c, d, e, f + 1, g, h) [ h >= 3 /\ 8 >= b /\ 9 >= b /\ b >= 0 /\ h >= a /\ 4 >= h /\ f = b + 1 ] (1, 1) start0(a, b, c, d, e, f, g, h) -> start(a, c, c, e, e, g, g, a) start location: start0 leaf cost: 2 Complexity upper bound 44*a + 221 Time: 0.714 sec (SMT: 0.679 sec)