NO Initial ITS Start location: l8 Program variables: ___rho_1_^0 ___rho_2_^0 c^0 curr_serv^0 resp^0 servers^0 0: l0 -> l1 : ___rho_1_^0'=___rho_1_^post1, ___rho_2_^0'=___rho_2_^post1, c^0'=c^post1, curr_serv^0'=curr_serv^post1, resp^0'=resp^post1, servers^0'=servers^post1, (curr_serv^0-curr_serv^post1 == 0 /\ -resp^post1+resp^0 == 0 /\ ___rho_1_^0-___rho_1_^post1 == 0 /\ -c^post1+c^0 == 0 /\ -servers^post1+servers^0 == 0 /\ -___rho_2_^post1+___rho_2_^0 == 0), cost: 1 6: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, ___rho_2_^0'=___rho_2_^post7, c^0'=c^post7, curr_serv^0'=curr_serv^post7, resp^0'=resp^post7, servers^0'=servers^post7, (0 == 0 /\ 1-curr_serv^0 <= 0 /\ -servers^post7+servers^0 == 0 /\ -___rho_2_^post7+___rho_2_^0 == 0 /\ resp^0-resp^post7 == 0 /\ curr_serv^0-curr_serv^post7 == 0 /\ -c^post7+c^0 == 0), cost: 1 7: l1 -> l4 : ___rho_1_^0'=___rho_1_^post8, ___rho_2_^0'=___rho_2_^post8, c^0'=c^post8, curr_serv^0'=curr_serv^post8, resp^0'=resp^post8, servers^0'=servers^post8, (curr_serv^0-curr_serv^post8 == 0 /\ ___rho_1_^0-___rho_1_^post8 == 0 /\ -c^post8+c^0 == 0 /\ -resp^post8+resp^0 == 0 /\ curr_serv^0 <= 0 /\ -___rho_2_^post8+___rho_2_^0 == 0 /\ -servers^post8+servers^0 == 0), cost: 1 1: l2 -> l3 : ___rho_1_^0'=___rho_1_^post2, ___rho_2_^0'=___rho_2_^post2, c^0'=c^post2, curr_serv^0'=curr_serv^post2, resp^0'=resp^post2, servers^0'=servers^post2, (resp^0-resp^post2 == 0 /\ curr_serv^0-curr_serv^post2 == 0 /\ -servers^post2+servers^0 == 0 /\ ___rho_2_^0-___rho_2_^post2 == 0 /\ -c^post2+c^0 == 0 /\ -___rho_1_^post2+___rho_1_^0 == 0), cost: 1 2: l4 -> l5 : ___rho_1_^0'=___rho_1_^post3, ___rho_2_^0'=___rho_2_^post3, c^0'=c^post3, curr_serv^0'=curr_serv^post3, resp^0'=resp^post3, servers^0'=servers^post3, (-c^post3+c^0 == 0 /\ -___rho_1_^post3+___rho_1_^0 == 0 /\ servers^0-servers^post3 == 0 /\ -curr_serv^post3+curr_serv^0 == 0 /\ resp^0-resp^post3 == 0 /\ ___rho_2_^0-___rho_2_^post3 == 0), cost: 1 3: l5 -> l4 : ___rho_1_^0'=___rho_1_^post4, ___rho_2_^0'=___rho_2_^post4, c^0'=c^post4, curr_serv^0'=curr_serv^post4, resp^0'=resp^post4, servers^0'=servers^post4, (resp^0-resp^post4 == 0 /\ ___rho_2_^0-___rho_2_^post4 == 0 /\ -___rho_1_^post4+___rho_1_^0 == 0 /\ -c^post4+c^0 == 0 /\ -curr_serv^post4+curr_serv^0 == 0 /\ servers^0-servers^post4 == 0), cost: 1 4: l6 -> l0 : ___rho_1_^0'=___rho_1_^post5, ___rho_2_^0'=___rho_2_^post5, c^0'=c^post5, curr_serv^0'=curr_serv^post5, resp^0'=resp^post5, servers^0'=servers^post5, (-c^post5+c^0 == 0 /\ -___rho_1_^post5+___rho_1_^0 == 0 /\ 2+curr_serv^post5-curr_serv^0 == 0 /\ -servers^post5+servers^0 == 0 /\ resp^0-resp^post5 == 0 /\ ___rho_2_^0-___rho_2_^post5 == 0 /\ ___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 5: l6 -> l0 : ___rho_1_^0'=___rho_1_^post6, ___rho_2_^0'=___rho_2_^post6, c^0'=c^post6, curr_serv^0'=curr_serv^post6, resp^0'=resp^post6, servers^0'=servers^post6, (___rho_1_^0-___rho_1_^post6 == 0 /\ 1-___rho_1_^0 <= 0 /\ 1+c^post6-c^0 == 0 /\ -___rho_2_^post6+___rho_2_^0 == 0 /\ 2-curr_serv^0+curr_serv^post6 == 0 /\ -servers^post6+servers^0 == 0 /\ -1-resp^0+resp^post6 == 0), cost: 1 8: l7 -> l0 : ___rho_1_^0'=___rho_1_^post9, ___rho_2_^0'=___rho_2_^post9, c^0'=c^post9, curr_serv^0'=curr_serv^post9, resp^0'=resp^post9, servers^0'=servers^post9, (0 == 0 /\ -___rho_2_^post9+c^post9 == 0 /\ 1-c^post9 <= 0 /\ ___rho_1_^0-___rho_1_^post9 == 0 /\ resp^post9 == 0 /\ -4+servers^post9 == 0 /\ -servers^post9+curr_serv^post9 == 0), cost: 1 9: l8 -> l7 : ___rho_1_^0'=___rho_1_^post10, ___rho_2_^0'=___rho_2_^post10, c^0'=c^post10, curr_serv^0'=curr_serv^post10, resp^0'=resp^post10, servers^0'=servers^post10, (curr_serv^0-curr_serv^post10 == 0 /\ -c^post10+c^0 == 0 /\ -___rho_2_^post10+___rho_2_^0 == 0 /\ -resp^post10+resp^0 == 0 /\ ___rho_1_^0-___rho_1_^post10 == 0 /\ -servers^post10+servers^0 == 0), cost: 1 Chained Linear Paths Start location: l8 Program variables: ___rho_1_^0 ___rho_2_^0 c^0 curr_serv^0 resp^0 servers^0 0: l0 -> l1 : ___rho_1_^0'=___rho_1_^post1, ___rho_2_^0'=___rho_2_^post1, c^0'=c^post1, curr_serv^0'=curr_serv^post1, resp^0'=resp^post1, servers^0'=servers^post1, (curr_serv^0-curr_serv^post1 == 0 /\ -resp^post1+resp^0 == 0 /\ ___rho_1_^0-___rho_1_^post1 == 0 /\ -c^post1+c^0 == 0 /\ -servers^post1+servers^0 == 0 /\ -___rho_2_^post1+___rho_2_^0 == 0), cost: 1 6: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, ___rho_2_^0'=___rho_2_^post7, c^0'=c^post7, curr_serv^0'=curr_serv^post7, resp^0'=resp^post7, servers^0'=servers^post7, (0 == 0 /\ 1-curr_serv^0 <= 0 /\ -servers^post7+servers^0 == 0 /\ -___rho_2_^post7+___rho_2_^0 == 0 /\ resp^0-resp^post7 == 0 /\ curr_serv^0-curr_serv^post7 == 0 /\ -c^post7+c^0 == 0), cost: 1 7: l1 -> l4 : ___rho_1_^0'=___rho_1_^post8, ___rho_2_^0'=___rho_2_^post8, c^0'=c^post8, curr_serv^0'=curr_serv^post8, resp^0'=resp^post8, servers^0'=servers^post8, (curr_serv^0-curr_serv^post8 == 0 /\ ___rho_1_^0-___rho_1_^post8 == 0 /\ -c^post8+c^0 == 0 /\ -resp^post8+resp^0 == 0 /\ curr_serv^0 <= 0 /\ -___rho_2_^post8+___rho_2_^0 == 0 /\ -servers^post8+servers^0 == 0), cost: 1 1: l2 -> l3 : ___rho_1_^0'=___rho_1_^post2, ___rho_2_^0'=___rho_2_^post2, c^0'=c^post2, curr_serv^0'=curr_serv^post2, resp^0'=resp^post2, servers^0'=servers^post2, (resp^0-resp^post2 == 0 /\ curr_serv^0-curr_serv^post2 == 0 /\ -servers^post2+servers^0 == 0 /\ ___rho_2_^0-___rho_2_^post2 == 0 /\ -c^post2+c^0 == 0 /\ -___rho_1_^post2+___rho_1_^0 == 0), cost: 1 11: l4 -> l4 : ___rho_1_^0'=___rho_1_^post4, ___rho_2_^0'=___rho_2_^post4, c^0'=c^post4, curr_serv^0'=curr_serv^post4, resp^0'=resp^post4, servers^0'=servers^post4, (-___rho_1_^post4+___rho_1_^post3 == 0 /\ -curr_serv^post4+curr_serv^post3 == 0 /\ c^post3-c^post4 == 0 /\ -c^post3+c^0 == 0 /\ -___rho_1_^post3+___rho_1_^0 == 0 /\ servers^0-servers^post3 == 0 /\ -resp^post4+resp^post3 == 0 /\ -curr_serv^post3+curr_serv^0 == 0 /\ resp^0-resp^post3 == 0 /\ -___rho_2_^post4+___rho_2_^post3 == 0 /\ -servers^post4+servers^post3 == 0 /\ ___rho_2_^0-___rho_2_^post3 == 0), cost: 1 4: l6 -> l0 : ___rho_1_^0'=___rho_1_^post5, ___rho_2_^0'=___rho_2_^post5, c^0'=c^post5, curr_serv^0'=curr_serv^post5, resp^0'=resp^post5, servers^0'=servers^post5, (-c^post5+c^0 == 0 /\ -___rho_1_^post5+___rho_1_^0 == 0 /\ 2+curr_serv^post5-curr_serv^0 == 0 /\ -servers^post5+servers^0 == 0 /\ resp^0-resp^post5 == 0 /\ ___rho_2_^0-___rho_2_^post5 == 0 /\ ___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 5: l6 -> l0 : ___rho_1_^0'=___rho_1_^post6, ___rho_2_^0'=___rho_2_^post6, c^0'=c^post6, curr_serv^0'=curr_serv^post6, resp^0'=resp^post6, servers^0'=servers^post6, (___rho_1_^0-___rho_1_^post6 == 0 /\ 1-___rho_1_^0 <= 0 /\ 1+c^post6-c^0 == 0 /\ -___rho_2_^post6+___rho_2_^0 == 0 /\ 2-curr_serv^0+curr_serv^post6 == 0 /\ -servers^post6+servers^0 == 0 /\ -1-resp^0+resp^post6 == 0), cost: 1 10: l8 -> l0 : ___rho_1_^0'=___rho_1_^post9, ___rho_2_^0'=___rho_2_^post9, c^0'=c^post9, curr_serv^0'=curr_serv^post9, resp^0'=resp^post9, servers^0'=servers^post9, (0 == 0 /\ curr_serv^0-curr_serv^post10 == 0 /\ -___rho_2_^post9+c^post9 == 0 /\ 1-c^post9 <= 0 /\ resp^post9 == 0 /\ -c^post10+c^0 == 0 /\ -___rho_2_^post10+___rho_2_^0 == 0 /\ -resp^post10+resp^0 == 0 /\ ___rho_1_^0-___rho_1_^post10 == 0 /\ -4+servers^post9 == 0 /\ ___rho_1_^post10-___rho_1_^post9 == 0 /\ -servers^post10+servers^0 == 0 /\ -servers^post9+curr_serv^post9 == 0), cost: 1 Eliminating location l7 by chaining: Applied chaining First rule: l8 -> l7 : ___rho_1_^0'=___rho_1_^post10, ___rho_2_^0'=___rho_2_^post10, c^0'=c^post10, curr_serv^0'=curr_serv^post10, resp^0'=resp^post10, servers^0'=servers^post10, (curr_serv^0-curr_serv^post10 == 0 /\ -c^post10+c^0 == 0 /\ -___rho_2_^post10+___rho_2_^0 == 0 /\ -resp^post10+resp^0 == 0 /\ ___rho_1_^0-___rho_1_^post10 == 0 /\ -servers^post10+servers^0 == 0), cost: 1 Second rule: l7 -> l0 : ___rho_1_^0'=___rho_1_^post9, ___rho_2_^0'=___rho_2_^post9, c^0'=c^post9, curr_serv^0'=curr_serv^post9, resp^0'=resp^post9, servers^0'=servers^post9, (0 == 0 /\ -___rho_2_^post9+c^post9 == 0 /\ 1-c^post9 <= 0 /\ ___rho_1_^0-___rho_1_^post9 == 0 /\ resp^post9 == 0 /\ -4+servers^post9 == 0 /\ -servers^post9+curr_serv^post9 == 0), cost: 1 New rule: l8 -> l0 : ___rho_1_^0'=___rho_1_^post9, ___rho_2_^0'=___rho_2_^post9, c^0'=c^post9, curr_serv^0'=curr_serv^post9, resp^0'=resp^post9, servers^0'=servers^post9, (0 == 0 /\ curr_serv^0-curr_serv^post10 == 0 /\ -___rho_2_^post9+c^post9 == 0 /\ 1-c^post9 <= 0 /\ resp^post9 == 0 /\ -c^post10+c^0 == 0 /\ -___rho_2_^post10+___rho_2_^0 == 0 /\ -resp^post10+resp^0 == 0 /\ ___rho_1_^0-___rho_1_^post10 == 0 /\ -4+servers^post9 == 0 /\ ___rho_1_^post10-___rho_1_^post9 == 0 /\ -servers^post10+servers^0 == 0 /\ -servers^post9+curr_serv^post9 == 0), cost: 1 Applied deletion Removed the following rules: 8 9 Eliminating location l5 by chaining: Applied chaining First rule: l4 -> l5 : ___rho_1_^0'=___rho_1_^post3, ___rho_2_^0'=___rho_2_^post3, c^0'=c^post3, curr_serv^0'=curr_serv^post3, resp^0'=resp^post3, servers^0'=servers^post3, (-c^post3+c^0 == 0 /\ -___rho_1_^post3+___rho_1_^0 == 0 /\ servers^0-servers^post3 == 0 /\ -curr_serv^post3+curr_serv^0 == 0 /\ resp^0-resp^post3 == 0 /\ ___rho_2_^0-___rho_2_^post3 == 0), cost: 1 Second rule: l5 -> l4 : ___rho_1_^0'=___rho_1_^post4, ___rho_2_^0'=___rho_2_^post4, c^0'=c^post4, curr_serv^0'=curr_serv^post4, resp^0'=resp^post4, servers^0'=servers^post4, (resp^0-resp^post4 == 0 /\ ___rho_2_^0-___rho_2_^post4 == 0 /\ -___rho_1_^post4+___rho_1_^0 == 0 /\ -c^post4+c^0 == 0 /\ -curr_serv^post4+curr_serv^0 == 0 /\ servers^0-servers^post4 == 0), cost: 1 New rule: l4 -> l4 : ___rho_1_^0'=___rho_1_^post4, ___rho_2_^0'=___rho_2_^post4, c^0'=c^post4, curr_serv^0'=curr_serv^post4, resp^0'=resp^post4, servers^0'=servers^post4, (-___rho_1_^post4+___rho_1_^post3 == 0 /\ -curr_serv^post4+curr_serv^post3 == 0 /\ c^post3-c^post4 == 0 /\ -c^post3+c^0 == 0 /\ -___rho_1_^post3+___rho_1_^0 == 0 /\ servers^0-servers^post3 == 0 /\ -resp^post4+resp^post3 == 0 /\ -curr_serv^post3+curr_serv^0 == 0 /\ resp^0-resp^post3 == 0 /\ -___rho_2_^post4+___rho_2_^post3 == 0 /\ -servers^post4+servers^post3 == 0 /\ ___rho_2_^0-___rho_2_^post3 == 0), cost: 1 Applied deletion Removed the following rules: 2 3 Simplified Transitions Start location: l8 Program variables: ___rho_1_^0 ___rho_2_^0 c^0 curr_serv^0 resp^0 servers^0 12: l0 -> l1 : T, cost: 1 16: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, 1-curr_serv^0 <= 0, cost: 1 17: l1 -> l4 : curr_serv^0 <= 0, cost: 1 13: l2 -> l3 : T, cost: 1 19: l4 -> l4 : T, cost: 1 14: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, (___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 15: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, 1-___rho_1_^0 <= 0, cost: 1 18: l8 -> l0 : ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, 1-c^post9 <= 0, cost: 1 Propagated Equalities Original rule: l0 -> l1 : ___rho_1_^0'=___rho_1_^post1, ___rho_2_^0'=___rho_2_^post1, c^0'=c^post1, curr_serv^0'=curr_serv^post1, resp^0'=resp^post1, servers^0'=servers^post1, (curr_serv^0-curr_serv^post1 == 0 /\ -resp^post1+resp^0 == 0 /\ ___rho_1_^0-___rho_1_^post1 == 0 /\ -c^post1+c^0 == 0 /\ -servers^post1+servers^0 == 0 /\ -___rho_2_^post1+___rho_2_^0 == 0), cost: 1 New rule: l0 -> l1 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, 0 == 0, cost: 1 propagated equality curr_serv^post1 = curr_serv^0 propagated equality resp^post1 = resp^0 propagated equality ___rho_1_^post1 = ___rho_1_^0 propagated equality c^post1 = c^0 propagated equality servers^post1 = servers^0 propagated equality ___rho_2_^post1 = ___rho_2_^0 Simplified Guard Original rule: l0 -> l1 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, 0 == 0, cost: 1 New rule: l0 -> l1 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, T, cost: 1 Removed Trivial Updates Original rule: l0 -> l1 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, T, cost: 1 New rule: l0 -> l1 : T, cost: 1 Propagated Equalities Original rule: l2 -> l3 : ___rho_1_^0'=___rho_1_^post2, ___rho_2_^0'=___rho_2_^post2, c^0'=c^post2, curr_serv^0'=curr_serv^post2, resp^0'=resp^post2, servers^0'=servers^post2, (resp^0-resp^post2 == 0 /\ curr_serv^0-curr_serv^post2 == 0 /\ -servers^post2+servers^0 == 0 /\ ___rho_2_^0-___rho_2_^post2 == 0 /\ -c^post2+c^0 == 0 /\ -___rho_1_^post2+___rho_1_^0 == 0), cost: 1 New rule: l2 -> l3 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, 0 == 0, cost: 1 propagated equality resp^post2 = resp^0 propagated equality curr_serv^post2 = curr_serv^0 propagated equality servers^post2 = servers^0 propagated equality ___rho_2_^post2 = ___rho_2_^0 propagated equality c^post2 = c^0 propagated equality ___rho_1_^post2 = ___rho_1_^0 Simplified Guard Original rule: l2 -> l3 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, 0 == 0, cost: 1 New rule: l2 -> l3 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, T, cost: 1 Removed Trivial Updates Original rule: l2 -> l3 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, T, cost: 1 New rule: l2 -> l3 : T, cost: 1 Propagated Equalities Original rule: l6 -> l0 : ___rho_1_^0'=___rho_1_^post5, ___rho_2_^0'=___rho_2_^post5, c^0'=c^post5, curr_serv^0'=curr_serv^post5, resp^0'=resp^post5, servers^0'=servers^post5, (-c^post5+c^0 == 0 /\ -___rho_1_^post5+___rho_1_^0 == 0 /\ 2+curr_serv^post5-curr_serv^0 == 0 /\ -servers^post5+servers^0 == 0 /\ resp^0-resp^post5 == 0 /\ ___rho_2_^0-___rho_2_^post5 == 0 /\ ___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 New rule: l6 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, (0 == 0 /\ ___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 propagated equality c^post5 = c^0 propagated equality ___rho_1_^post5 = ___rho_1_^0 propagated equality curr_serv^post5 = -2+curr_serv^0 propagated equality servers^post5 = servers^0 propagated equality resp^post5 = resp^0 propagated equality ___rho_2_^post5 = ___rho_2_^0 Simplified Guard Original rule: l6 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, (0 == 0 /\ ___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 New rule: l6 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, (___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 Removed Trivial Updates Original rule: l6 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, (___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 New rule: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, (___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 Propagated Equalities Original rule: l6 -> l0 : ___rho_1_^0'=___rho_1_^post6, ___rho_2_^0'=___rho_2_^post6, c^0'=c^post6, curr_serv^0'=curr_serv^post6, resp^0'=resp^post6, servers^0'=servers^post6, (___rho_1_^0-___rho_1_^post6 == 0 /\ 1-___rho_1_^0 <= 0 /\ 1+c^post6-c^0 == 0 /\ -___rho_2_^post6+___rho_2_^0 == 0 /\ 2-curr_serv^0+curr_serv^post6 == 0 /\ -servers^post6+servers^0 == 0 /\ -1-resp^0+resp^post6 == 0), cost: 1 New rule: l6 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, servers^0'=servers^0, (0 == 0 /\ 1-___rho_1_^0 <= 0), cost: 1 propagated equality ___rho_1_^post6 = ___rho_1_^0 propagated equality c^post6 = -1+c^0 propagated equality ___rho_2_^post6 = ___rho_2_^0 propagated equality curr_serv^post6 = -2+curr_serv^0 propagated equality servers^post6 = servers^0 propagated equality resp^post6 = 1+resp^0 Simplified Guard Original rule: l6 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, servers^0'=servers^0, (0 == 0 /\ 1-___rho_1_^0 <= 0), cost: 1 New rule: l6 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, servers^0'=servers^0, 1-___rho_1_^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l6 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, servers^0'=servers^0, 1-___rho_1_^0 <= 0, cost: 1 New rule: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, 1-___rho_1_^0 <= 0, cost: 1 Propagated Equalities Original rule: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, ___rho_2_^0'=___rho_2_^post7, c^0'=c^post7, curr_serv^0'=curr_serv^post7, resp^0'=resp^post7, servers^0'=servers^post7, (0 == 0 /\ 1-curr_serv^0 <= 0 /\ -servers^post7+servers^0 == 0 /\ -___rho_2_^post7+___rho_2_^0 == 0 /\ resp^0-resp^post7 == 0 /\ curr_serv^0-curr_serv^post7 == 0 /\ -c^post7+c^0 == 0), cost: 1 New rule: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, (0 == 0 /\ 1-curr_serv^0 <= 0), cost: 1 propagated equality servers^post7 = servers^0 propagated equality ___rho_2_^post7 = ___rho_2_^0 propagated equality resp^post7 = resp^0 propagated equality curr_serv^post7 = curr_serv^0 propagated equality c^post7 = c^0 Simplified Guard Original rule: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, (0 == 0 /\ 1-curr_serv^0 <= 0), cost: 1 New rule: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, 1-curr_serv^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, 1-curr_serv^0 <= 0, cost: 1 New rule: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, 1-curr_serv^0 <= 0, cost: 1 Propagated Equalities Original rule: l1 -> l4 : ___rho_1_^0'=___rho_1_^post8, ___rho_2_^0'=___rho_2_^post8, c^0'=c^post8, curr_serv^0'=curr_serv^post8, resp^0'=resp^post8, servers^0'=servers^post8, (curr_serv^0-curr_serv^post8 == 0 /\ ___rho_1_^0-___rho_1_^post8 == 0 /\ -c^post8+c^0 == 0 /\ -resp^post8+resp^0 == 0 /\ curr_serv^0 <= 0 /\ -___rho_2_^post8+___rho_2_^0 == 0 /\ -servers^post8+servers^0 == 0), cost: 1 New rule: l1 -> l4 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, (0 == 0 /\ curr_serv^0 <= 0), cost: 1 propagated equality curr_serv^post8 = curr_serv^0 propagated equality ___rho_1_^post8 = ___rho_1_^0 propagated equality c^post8 = c^0 propagated equality resp^post8 = resp^0 propagated equality ___rho_2_^post8 = ___rho_2_^0 propagated equality servers^post8 = servers^0 Simplified Guard Original rule: l1 -> l4 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, (0 == 0 /\ curr_serv^0 <= 0), cost: 1 New rule: l1 -> l4 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, curr_serv^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l1 -> l4 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, curr_serv^0 <= 0, cost: 1 New rule: l1 -> l4 : curr_serv^0 <= 0, cost: 1 Propagated Equalities Original rule: l8 -> l0 : ___rho_1_^0'=___rho_1_^post9, ___rho_2_^0'=___rho_2_^post9, c^0'=c^post9, curr_serv^0'=curr_serv^post9, resp^0'=resp^post9, servers^0'=servers^post9, (0 == 0 /\ curr_serv^0-curr_serv^post10 == 0 /\ -___rho_2_^post9+c^post9 == 0 /\ 1-c^post9 <= 0 /\ resp^post9 == 0 /\ -c^post10+c^0 == 0 /\ -___rho_2_^post10+___rho_2_^0 == 0 /\ -resp^post10+resp^0 == 0 /\ ___rho_1_^0-___rho_1_^post10 == 0 /\ -4+servers^post9 == 0 /\ ___rho_1_^post10-___rho_1_^post9 == 0 /\ -servers^post10+servers^0 == 0 /\ -servers^post9+curr_serv^post9 == 0), cost: 1 New rule: l8 -> l0 : ___rho_1_^0'=___rho_1_^post10, ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, (0 == 0 /\ curr_serv^0-curr_serv^post10 == 0 /\ 1-c^post9 <= 0 /\ -c^post10+c^0 == 0 /\ -___rho_2_^post10+___rho_2_^0 == 0 /\ -resp^post10+resp^0 == 0 /\ ___rho_1_^0-___rho_1_^post10 == 0 /\ -servers^post10+servers^0 == 0), cost: 1 propagated equality ___rho_2_^post9 = c^post9 propagated equality resp^post9 = 0 propagated equality servers^post9 = 4 propagated equality ___rho_1_^post9 = ___rho_1_^post10 propagated equality curr_serv^post9 = 4 Propagated Equalities Original rule: l8 -> l0 : ___rho_1_^0'=___rho_1_^post10, ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, (0 == 0 /\ curr_serv^0-curr_serv^post10 == 0 /\ 1-c^post9 <= 0 /\ -c^post10+c^0 == 0 /\ -___rho_2_^post10+___rho_2_^0 == 0 /\ -resp^post10+resp^0 == 0 /\ ___rho_1_^0-___rho_1_^post10 == 0 /\ -servers^post10+servers^0 == 0), cost: 1 New rule: l8 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, (0 == 0 /\ 1-c^post9 <= 0), cost: 1 propagated equality curr_serv^post10 = curr_serv^0 propagated equality c^post10 = c^0 propagated equality ___rho_2_^post10 = ___rho_2_^0 propagated equality resp^post10 = resp^0 propagated equality ___rho_1_^post10 = ___rho_1_^0 propagated equality servers^post10 = servers^0 Simplified Guard Original rule: l8 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, (0 == 0 /\ 1-c^post9 <= 0), cost: 1 New rule: l8 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, 1-c^post9 <= 0, cost: 1 Removed Trivial Updates Original rule: l8 -> l0 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, 1-c^post9 <= 0, cost: 1 New rule: l8 -> l0 : ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, 1-c^post9 <= 0, cost: 1 Propagated Equalities Original rule: l4 -> l4 : ___rho_1_^0'=___rho_1_^post4, ___rho_2_^0'=___rho_2_^post4, c^0'=c^post4, curr_serv^0'=curr_serv^post4, resp^0'=resp^post4, servers^0'=servers^post4, (-___rho_1_^post4+___rho_1_^post3 == 0 /\ -curr_serv^post4+curr_serv^post3 == 0 /\ c^post3-c^post4 == 0 /\ -c^post3+c^0 == 0 /\ -___rho_1_^post3+___rho_1_^0 == 0 /\ servers^0-servers^post3 == 0 /\ -resp^post4+resp^post3 == 0 /\ -curr_serv^post3+curr_serv^0 == 0 /\ resp^0-resp^post3 == 0 /\ -___rho_2_^post4+___rho_2_^post3 == 0 /\ -servers^post4+servers^post3 == 0 /\ ___rho_2_^0-___rho_2_^post3 == 0), cost: 1 New rule: l4 -> l4 : ___rho_1_^0'=___rho_1_^post3, ___rho_2_^0'=___rho_2_^post3, c^0'=c^post3, curr_serv^0'=curr_serv^post3, resp^0'=resp^post3, servers^0'=servers^post3, (0 == 0 /\ -c^post3+c^0 == 0 /\ -___rho_1_^post3+___rho_1_^0 == 0 /\ servers^0-servers^post3 == 0 /\ -curr_serv^post3+curr_serv^0 == 0 /\ resp^0-resp^post3 == 0 /\ ___rho_2_^0-___rho_2_^post3 == 0), cost: 1 propagated equality ___rho_1_^post4 = ___rho_1_^post3 propagated equality curr_serv^post4 = curr_serv^post3 propagated equality c^post4 = c^post3 propagated equality resp^post4 = resp^post3 propagated equality ___rho_2_^post4 = ___rho_2_^post3 propagated equality servers^post4 = servers^post3 Propagated Equalities Original rule: l4 -> l4 : ___rho_1_^0'=___rho_1_^post3, ___rho_2_^0'=___rho_2_^post3, c^0'=c^post3, curr_serv^0'=curr_serv^post3, resp^0'=resp^post3, servers^0'=servers^post3, (0 == 0 /\ -c^post3+c^0 == 0 /\ -___rho_1_^post3+___rho_1_^0 == 0 /\ servers^0-servers^post3 == 0 /\ -curr_serv^post3+curr_serv^0 == 0 /\ resp^0-resp^post3 == 0 /\ ___rho_2_^0-___rho_2_^post3 == 0), cost: 1 New rule: l4 -> l4 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, 0 == 0, cost: 1 propagated equality c^post3 = c^0 propagated equality ___rho_1_^post3 = ___rho_1_^0 propagated equality servers^post3 = servers^0 propagated equality curr_serv^post3 = curr_serv^0 propagated equality resp^post3 = resp^0 propagated equality ___rho_2_^post3 = ___rho_2_^0 Simplified Guard Original rule: l4 -> l4 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, 0 == 0, cost: 1 New rule: l4 -> l4 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, T, cost: 1 Removed Trivial Updates Original rule: l4 -> l4 : ___rho_1_^0'=___rho_1_^0, ___rho_2_^0'=___rho_2_^0, c^0'=c^0, curr_serv^0'=curr_serv^0, resp^0'=resp^0, servers^0'=servers^0, T, cost: 1 New rule: l4 -> l4 : T, cost: 1 Step with 18 Trace 18[(1-c^post9 <= 0)] Blocked [{}, {}] Step with 12 Trace 18[(1-c^post9 <= 0)], 12[T] Blocked [{}, {}, {}] Step with 16 Trace 18[(1-c^post9 <= 0)], 12[T], 16[(1-curr_serv^0 <= 0)] Blocked [{}, {}, {17[T]}, {}] Step with 14 Trace 18[(1-c^post9 <= 0)], 12[T], 16[(1-curr_serv^0 <= 0)], 14[(___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0)] Blocked [{}, {}, {17[T]}, {}, {}] Accelerate Start location: l8 Program variables: ___rho_1_^0 ___rho_2_^0 c^0 curr_serv^0 resp^0 servers^0 12: l0 -> l1 : T, cost: 1 20: l0 -> l0 : ___rho_1_^0'=___rho_1_^post71, curr_serv^0'=curr_serv^0-2*n, (1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0), cost: 1 16: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, 1-curr_serv^0 <= 0, cost: 1 17: l1 -> l4 : curr_serv^0 <= 0, cost: 1 13: l2 -> l3 : T, cost: 1 19: l4 -> l4 : T, cost: 1 14: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, (___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 15: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, 1-___rho_1_^0 <= 0, cost: 1 18: l8 -> l0 : ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, 1-c^post9 <= 0, cost: 1 Loop Acceleration Original rule: l0 -> l0 : ___rho_1_^0'=___rho_1_^post71, curr_serv^0'=-2+curr_serv^0, (1-curr_serv^0 <= 0 /\ ___rho_1_^post71 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 New rule: l0 -> l0 : ___rho_1_^0'=___rho_1_^post71, curr_serv^0'=curr_serv^0-2*n, (1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0), cost: 1 -1+curr_serv^0 >= 0 [0]: montonic decrease yields 1+curr_serv^0-2*n >= 0 -1+curr_serv^0 >= 0 [1]: eventual increase yields (-1+curr_serv^0 >= 0 /\ 2 <= 0) -___rho_1_^post71 >= 0 [0]: monotonic increase yields -___rho_1_^post71 >= 0 -1+curr_serv^0-c^0 >= 0 [0]: montonic decrease yields 1+curr_serv^0-c^0-2*n >= 0 -1+curr_serv^0-c^0 >= 0 [1]: eventual increase yields (2 <= 0 /\ -1+curr_serv^0-c^0 >= 0) Replacement map: {-1+curr_serv^0 >= 0 -> 1+curr_serv^0-2*n >= 0, -___rho_1_^post71 >= 0 -> -___rho_1_^post71 >= 0, -1+curr_serv^0-c^0 >= 0 -> 1+curr_serv^0-c^0-2*n >= 0} Trace 18[(1-c^post9 <= 0)], 20[(1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0)] Blocked [{}, {}, {20[T]}] Step with 12 Trace 18[(1-c^post9 <= 0)], 20[(1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0)], 12[T] Blocked [{}, {}, {20[T]}, {}] Step with 16 Trace 18[(1-c^post9 <= 0)], 20[(1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0)], 12[T], 16[(1-curr_serv^0 <= 0)] Blocked [{}, {}, {20[T]}, {}, {}] Step with 14 Trace 18[(1-c^post9 <= 0)], 20[(1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0)], 12[T], 16[(1-curr_serv^0 <= 0)], 14[(___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0)] Blocked [{}, {}, {20[T]}, {}, {}, {}] Covered Trace 18[(1-c^post9 <= 0)], 20[(1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0)], 12[T], 16[(1-curr_serv^0 <= 0)] Blocked [{}, {}, {20[T]}, {}, {14[T]}] Step with 15 Trace 18[(1-c^post9 <= 0)], 20[(1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0)], 12[T], 16[(1-curr_serv^0 <= 0)], 15[(1-___rho_1_^0 <= 0)] Blocked [{}, {}, {20[T]}, {}, {14[T]}, {}] Accelerate Start location: l8 Program variables: ___rho_1_^0 ___rho_2_^0 c^0 curr_serv^0 resp^0 servers^0 12: l0 -> l1 : T, cost: 1 20: l0 -> l0 : ___rho_1_^0'=___rho_1_^post71, curr_serv^0'=curr_serv^0-2*n, (1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0), cost: 1 21: l0 -> l0 : ___rho_1_^0'=___rho_1_^post72, c^0'=-n2+c^0, curr_serv^0'=curr_serv^0-2*n2, resp^0'=resp^0+n2, (-1+n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ 1+curr_serv^0-2*n2 >= 0), cost: 1 16: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, 1-curr_serv^0 <= 0, cost: 1 17: l1 -> l4 : curr_serv^0 <= 0, cost: 1 13: l2 -> l3 : T, cost: 1 19: l4 -> l4 : T, cost: 1 14: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, (___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 15: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, 1-___rho_1_^0 <= 0, cost: 1 18: l8 -> l0 : ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, 1-c^post9 <= 0, cost: 1 Loop Acceleration Original rule: l0 -> l0 : ___rho_1_^0'=___rho_1_^post72, c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, (1-curr_serv^0 <= 0 /\ 1-___rho_1_^post72 <= 0), cost: 1 New rule: l0 -> l0 : ___rho_1_^0'=___rho_1_^post72, c^0'=-n2+c^0, curr_serv^0'=curr_serv^0-2*n2, resp^0'=resp^0+n2, (-1+n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ 1+curr_serv^0-2*n2 >= 0), cost: 1 -1+curr_serv^0 >= 0 [0]: montonic decrease yields 1+curr_serv^0-2*n2 >= 0 -1+curr_serv^0 >= 0 [1]: eventual increase yields (-1+curr_serv^0 >= 0 /\ 2 <= 0) -1+___rho_1_^post72 >= 0 [0]: monotonic increase yields -1+___rho_1_^post72 >= 0 Replacement map: {-1+curr_serv^0 >= 0 -> 1+curr_serv^0-2*n2 >= 0, -1+___rho_1_^post72 >= 0 -> -1+___rho_1_^post72 >= 0} Trace 18[(1-c^post9 <= 0)], 20[(1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0)], 21[(-1+n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ 1+curr_serv^0-2*n2 >= 0)] Blocked [{}, {}, {20[T]}, {21[T]}] Accelerate Start location: l8 Program variables: ___rho_1_^0 ___rho_2_^0 c^0 curr_serv^0 resp^0 servers^0 12: l0 -> l1 : T, cost: 1 20: l0 -> l0 : ___rho_1_^0'=___rho_1_^post71, curr_serv^0'=curr_serv^0-2*n, (1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0), cost: 1 21: l0 -> l0 : ___rho_1_^0'=___rho_1_^post72, c^0'=-n2+c^0, curr_serv^0'=curr_serv^0-2*n2, resp^0'=resp^0+n2, (-1+n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ 1+curr_serv^0-2*n2 >= 0), cost: 1 22: l0 -> l0 : ___rho_1_^0'=___rho_1_^post72, c^0'=-n3*n2+c^0, curr_serv^0'=-2*n3*n1+curr_serv^0-2*n3*n2, resp^0'=resp^0+n3*n2, (-1+n2 >= 0 /\ -1+n3 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*(-1+n3)*n2 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*n2-2*(-1+n3)*n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ -1+n1 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-c^0-(-1+n3)*n2 >= 0), cost: 1 16: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, 1-curr_serv^0 <= 0, cost: 1 17: l1 -> l4 : curr_serv^0 <= 0, cost: 1 13: l2 -> l3 : T, cost: 1 19: l4 -> l4 : T, cost: 1 14: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, (___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 15: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, 1-___rho_1_^0 <= 0, cost: 1 18: l8 -> l0 : ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, 1-c^post9 <= 0, cost: 1 Loop Acceleration Original rule: l0 -> l0 : ___rho_1_^0'=___rho_1_^post72, c^0'=-n2+c^0, curr_serv^0'=-2*n1+curr_serv^0-2*n2, resp^0'=resp^0+n2, (-1+n2 >= 0 /\ 1-2*n1+curr_serv^0 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ 1-2*n1+curr_serv^0-c^0 >= 0 /\ 1-2*n1+curr_serv^0-2*n2 >= 0 /\ -1+n1 >= 0), cost: 1 New rule: l0 -> l0 : ___rho_1_^0'=___rho_1_^post72, c^0'=-n3*n2+c^0, curr_serv^0'=-2*n3*n1+curr_serv^0-2*n3*n2, resp^0'=resp^0+n3*n2, (-1+n2 >= 0 /\ -1+n3 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*(-1+n3)*n2 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*n2-2*(-1+n3)*n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ -1+n1 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-c^0-(-1+n3)*n2 >= 0), cost: 1 -1+n2 >= 0 [0]: monotonic increase yields -1+n2 >= 0 1-2*n1+curr_serv^0 >= 0 [0]: montonic decrease yields 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*(-1+n3)*n2 >= 0, dependencies: -1+n2 >= 0 1-2*n1+curr_serv^0-2*n2 >= 0 1-2*n1+curr_serv^0 >= 0 [1]: eventual decrease yields (1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*(-1+n3)*n2 >= 0 /\ 1-2*n1+curr_serv^0 >= 0) 1-2*n1+curr_serv^0 >= 0 [2]: eventual increase yields (1-2*n1+curr_serv^0 >= 0 /\ 2*n1+2*n2 <= 0) -1+___rho_1_^post72 >= 0 [0]: monotonic increase yields -1+___rho_1_^post72 >= 0 1-2*n1+curr_serv^0-c^0 >= 0 [0]: montonic decrease yields 1-2*(-1+n3)*n1-2*n1+curr_serv^0-c^0-(-1+n3)*n2 >= 0, dependencies: -1+n2 >= 0 -1+n1 >= 0 1-2*n1+curr_serv^0-c^0 >= 0 [1]: eventual decrease yields (1-2*n1+curr_serv^0-c^0 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-c^0-(-1+n3)*n2 >= 0), dependencies: -1+n2 >= 0 -1+n1 >= 0 1-2*n1+curr_serv^0-c^0 >= 0 [2]: eventual increase yields (1-2*n1+curr_serv^0-c^0 >= 0 /\ 2*n1+n2 <= 0), dependencies: -1+n2 >= 0 -1+n1 >= 0 1-2*n1+curr_serv^0-2*n2 >= 0 [0]: montonic decrease yields 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*n2-2*(-1+n3)*n2 >= 0, dependencies: -1+n2 >= 0 -1+n1 >= 0 1-2*n1+curr_serv^0-2*n2 >= 0 [1]: eventual decrease yields (1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*n2-2*(-1+n3)*n2 >= 0 /\ 1-2*n1+curr_serv^0-2*n2 >= 0) 1-2*n1+curr_serv^0-2*n2 >= 0 [2]: eventual increase yields (2*n1+2*n2 <= 0 /\ 1-2*n1+curr_serv^0-2*n2 >= 0) -1+n1 >= 0 [0]: monotonic increase yields -1+n1 >= 0 Replacement map: {-1+n2 >= 0 -> -1+n2 >= 0, 1-2*n1+curr_serv^0 >= 0 -> 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*(-1+n3)*n2 >= 0, -1+___rho_1_^post72 >= 0 -> -1+___rho_1_^post72 >= 0, 1-2*n1+curr_serv^0-c^0 >= 0 -> 1-2*(-1+n3)*n1-2*n1+curr_serv^0-c^0-(-1+n3)*n2 >= 0, 1-2*n1+curr_serv^0-2*n2 >= 0 -> 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*n2-2*(-1+n3)*n2 >= 0, -1+n1 >= 0 -> -1+n1 >= 0} Trace 18[(1-c^post9 <= 0)], 22[(-1+n2 >= 0 /\ -1+n3 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*(-1+n3)*n2 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*n2-2*(-1+n3)*n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ -1+n1 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-c^0-(-1+n3)*n2 >= 0)] Blocked [{}, {}, {22[T]}] Step with 12 Trace 18[(1-c^post9 <= 0)], 22[(-1+n2 >= 0 /\ -1+n3 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*(-1+n3)*n2 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*n2-2*(-1+n3)*n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ -1+n1 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-c^0-(-1+n3)*n2 >= 0)], 12[T] Blocked [{}, {}, {22[T]}, {}] Step with 17 Trace 18[(1-c^post9 <= 0)], 22[(-1+n2 >= 0 /\ -1+n3 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*(-1+n3)*n2 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*n2-2*(-1+n3)*n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ -1+n1 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-c^0-(-1+n3)*n2 >= 0)], 12[T], 17[(curr_serv^0 <= 0)] Blocked [{}, {}, {22[T]}, {16[T]}, {}] Step with 19 Trace 18[(1-c^post9 <= 0)], 22[(-1+n2 >= 0 /\ -1+n3 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*(-1+n3)*n2 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*n2-2*(-1+n3)*n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ -1+n1 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-c^0-(-1+n3)*n2 >= 0)], 12[T], 17[(curr_serv^0 <= 0)], 19[T] Blocked [{}, {}, {22[T]}, {16[T]}, {}, {}] Nonterm Start location: l8 Program variables: ___rho_1_^0 ___rho_2_^0 c^0 curr_serv^0 resp^0 servers^0 12: l0 -> l1 : T, cost: 1 20: l0 -> l0 : ___rho_1_^0'=___rho_1_^post71, curr_serv^0'=curr_serv^0-2*n, (1+curr_serv^0-2*n >= 0 /\ -___rho_1_^post71 >= 0 /\ 1+curr_serv^0-c^0-2*n >= 0 /\ -1+n >= 0), cost: 1 21: l0 -> l0 : ___rho_1_^0'=___rho_1_^post72, c^0'=-n2+c^0, curr_serv^0'=curr_serv^0-2*n2, resp^0'=resp^0+n2, (-1+n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ 1+curr_serv^0-2*n2 >= 0), cost: 1 22: l0 -> l0 : ___rho_1_^0'=___rho_1_^post72, c^0'=-n3*n2+c^0, curr_serv^0'=-2*n3*n1+curr_serv^0-2*n3*n2, resp^0'=resp^0+n3*n2, (-1+n2 >= 0 /\ -1+n3 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*(-1+n3)*n2 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*n2-2*(-1+n3)*n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ -1+n1 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-c^0-(-1+n3)*n2 >= 0), cost: 1 16: l1 -> l6 : ___rho_1_^0'=___rho_1_^post7, 1-curr_serv^0 <= 0, cost: 1 17: l1 -> l4 : curr_serv^0 <= 0, cost: 1 13: l2 -> l3 : T, cost: 1 19: l4 -> l4 : T, cost: 1 23: l4 -> LoAT_sink : -1+n4 >= 0, cost: NONTERM 14: l6 -> l0 : curr_serv^0'=-2+curr_serv^0, (___rho_1_^0 <= 0 /\ 1-curr_serv^0+c^0 <= 0), cost: 1 15: l6 -> l0 : c^0'=-1+c^0, curr_serv^0'=-2+curr_serv^0, resp^0'=1+resp^0, 1-___rho_1_^0 <= 0, cost: 1 18: l8 -> l0 : ___rho_2_^0'=c^post9, c^0'=c^post9, curr_serv^0'=4, resp^0'=0, servers^0'=4, 1-c^post9 <= 0, cost: 1 Certificate of Non-Termination Original rule: l4 -> l4 : T, cost: 1 New rule: l4 -> LoAT_sink : -1+n4 >= 0, cost: NONTERM Replacement map: {} Step with 23 Trace 18[(1-c^post9 <= 0)], 22[(-1+n2 >= 0 /\ -1+n3 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*(-1+n3)*n2 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-2*n2-2*(-1+n3)*n2 >= 0 /\ -1+___rho_1_^post72 >= 0 /\ -1+n1 >= 0 /\ 1-2*(-1+n3)*n1-2*n1+curr_serv^0-c^0-(-1+n3)*n2 >= 0)], 12[T], 17[(curr_serv^0 <= 0)], 23[-1+n4 >= 0] Blocked [{}, {}, {22[T]}, {16[T]}, {}, {23[T]}] Refute Counterexample [ ___rho_1_^0=0 ___rho_2_^0=1 c^0=1 curr_serv^0=4 resp^0=0 servers^0=4 ] 18 [ ___rho_1_^0=1 ___rho_2_^0=1 c^0=0 curr_serv^0=0 resp^0=1 servers^0=4 ] 22 [ ___rho_1_^0=1 ___rho_2_^0=1 c^0=0 curr_serv^0=0 resp^0=1 servers^0=4 ] 12 [ ___rho_1_^0=1 ___rho_2_^0=1 c^0=0 curr_serv^0=0 resp^0=1 servers^0=4 ] 17 [ ___rho_1_^0=0 ___rho_2_^0=___rho_2_^0 c^0=c^0 curr_serv^0=curr_serv^0 resp^0=resp^0 servers^0=servers^0 ] 23 NO Build SHA: a05f16bf13df659c382799650051f91bf6828c7b