NO Initial ITS Start location: l8 0: l0 -> l1 : servers^0'=servers^post0, c^0'=c^post0, tmp1^0'=tmp1^post0, resp^0'=resp^post0, __rho_1_^0'=__rho_1_^post0, serversdiv2^0'=serversdiv2^post0, curr_serv^0'=curr_serv^post0, (servers^0-servers^post0 == 0 /\ -c^post0+c^0 == 0 /\ -curr_serv^post0+curr_serv^0 == 0 /\ -serversdiv2^post0+serversdiv2^0 == 0 /\ -__rho_1_^post0+__rho_1_^0 == 0 /\ resp^0-resp^post0 == 0 /\ tmp1^0-tmp1^post0 == 0), cost: 1 6: l1 -> l6 : servers^0'=servers^post6, c^0'=c^post6, tmp1^0'=tmp1^post6, resp^0'=resp^post6, __rho_1_^0'=__rho_1_^post6, serversdiv2^0'=serversdiv2^post6, curr_serv^0'=curr_serv^post6, (0 == 0 /\ servers^0-servers^post6 == 0 /\ -serversdiv2^post6+serversdiv2^0 == 0 /\ resp^0-resp^post6 == 0 /\ 1-curr_serv^0 <= 0 /\ -curr_serv^post6+curr_serv^0 == 0 /\ tmp1^0-tmp1^post6 == 0 /\ -c^post6+c^0 == 0), cost: 1 7: l1 -> l4 : servers^0'=servers^post7, c^0'=c^post7, tmp1^0'=tmp1^post7, resp^0'=resp^post7, __rho_1_^0'=__rho_1_^post7, serversdiv2^0'=serversdiv2^post7, curr_serv^0'=curr_serv^post7, (-resp^post7+resp^0 == 0 /\ -curr_serv^post7+curr_serv^0 == 0 /\ -serversdiv2^post7+serversdiv2^0 == 0 /\ tmp1^0-tmp1^post7 == 0 /\ servers^0-servers^post7 == 0 /\ -__rho_1_^post7+__rho_1_^0 == 0 /\ curr_serv^0 <= 0 /\ c^0-c^post7 == 0), cost: 1 1: l2 -> l3 : servers^0'=servers^post1, c^0'=c^post1, tmp1^0'=tmp1^post1, resp^0'=resp^post1, __rho_1_^0'=__rho_1_^post1, serversdiv2^0'=serversdiv2^post1, curr_serv^0'=curr_serv^post1, (-__rho_1_^post1+__rho_1_^0 == 0 /\ tmp1^0-tmp1^post1 == 0 /\ servers^0-servers^post1 == 0 /\ c^0-c^post1 == 0 /\ -curr_serv^post1+curr_serv^0 == 0 /\ resp^0-resp^post1 == 0 /\ -serversdiv2^post1+serversdiv2^0 == 0), cost: 1 2: l4 -> l5 : servers^0'=servers^post2, c^0'=c^post2, tmp1^0'=tmp1^post2, resp^0'=resp^post2, __rho_1_^0'=__rho_1_^post2, serversdiv2^0'=serversdiv2^post2, curr_serv^0'=curr_serv^post2, (c^0-c^post2 == 0 /\ curr_serv^0-curr_serv^post2 == 0 /\ servers^0-servers^post2 == 0 /\ -serversdiv2^post2+serversdiv2^0 == 0 /\ tmp1^0-tmp1^post2 == 0 /\ -resp^post2+resp^0 == 0 /\ -__rho_1_^post2+__rho_1_^0 == 0), cost: 1 3: l5 -> l4 : servers^0'=servers^post3, c^0'=c^post3, tmp1^0'=tmp1^post3, resp^0'=resp^post3, __rho_1_^0'=__rho_1_^post3, serversdiv2^0'=serversdiv2^post3, curr_serv^0'=curr_serv^post3, (-curr_serv^post3+curr_serv^0 == 0 /\ -tmp1^post3+tmp1^0 == 0 /\ c^0-c^post3 == 0 /\ servers^0-servers^post3 == 0 /\ -resp^post3+resp^0 == 0 /\ serversdiv2^0-serversdiv2^post3 == 0 /\ __rho_1_^0-__rho_1_^post3 == 0), cost: 1 4: l6 -> l0 : servers^0'=servers^post4, c^0'=c^post4, tmp1^0'=tmp1^post4, resp^0'=resp^post4, __rho_1_^0'=__rho_1_^post4, serversdiv2^0'=serversdiv2^post4, curr_serv^0'=curr_serv^post4, (1+curr_serv^post4-curr_serv^0 == 0 /\ -tmp1^post4+tmp1^0 == 0 /\ servers^0-servers^post4 == 0 /\ __rho_1_^0 <= 0 /\ 1+c^0-curr_serv^0 <= 0 /\ -resp^post4+resp^0 == 0 /\ __rho_1_^0-__rho_1_^post4 == 0 /\ serversdiv2^0-serversdiv2^post4 == 0 /\ c^0-c^post4 == 0), cost: 1 5: l6 -> l0 : servers^0'=servers^post5, c^0'=c^post5, tmp1^0'=tmp1^post5, resp^0'=resp^post5, __rho_1_^0'=__rho_1_^post5, serversdiv2^0'=serversdiv2^post5, curr_serv^0'=curr_serv^post5, (-tmp1^post5+tmp1^0 == 0 /\ 1+curr_serv^post5-curr_serv^0 == 0 /\ __rho_1_^0-__rho_1_^post5 == 0 /\ 1-c^0+c^post5 == 0 /\ -1-resp^0+resp^post5 == 0 /\ -serversdiv2^post5+serversdiv2^0 == 0 /\ 1-__rho_1_^0 <= 0 /\ servers^0-servers^post5 == 0), cost: 1 8: l7 -> l0 : servers^0'=servers^post8, c^0'=c^post8, tmp1^0'=tmp1^post8, resp^0'=resp^post8, __rho_1_^0'=__rho_1_^post8, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=curr_serv^post8, (0 == 0 /\ c^post8-tmp1^post8 == 0 /\ -1+servers^post8-2*serversdiv2^post8 <= 0 /\ 1-servers^post8+2*serversdiv2^post8 <= 0 /\ resp^post8 == 0 /\ -__rho_1_^post8+__rho_1_^0 == 0 /\ 1-servers^post8 <= 0 /\ 1-c^post8 <= 0 /\ -servers^post8+curr_serv^post8 == 0), cost: 1 9: l8 -> l7 : servers^0'=servers^post9, c^0'=c^post9, tmp1^0'=tmp1^post9, resp^0'=resp^post9, __rho_1_^0'=__rho_1_^post9, serversdiv2^0'=serversdiv2^post9, curr_serv^0'=curr_serv^post9, (c^0-c^post9 == 0 /\ servers^0-servers^post9 == 0 /\ curr_serv^0-curr_serv^post9 == 0 /\ serversdiv2^0-serversdiv2^post9 == 0 /\ tmp1^0-tmp1^post9 == 0 /\ -resp^post9+resp^0 == 0 /\ -__rho_1_^post9+__rho_1_^0 == 0), cost: 1 Removed unreachable rules and leafs Start location: l8 0: l0 -> l1 : servers^0'=servers^post0, c^0'=c^post0, tmp1^0'=tmp1^post0, resp^0'=resp^post0, __rho_1_^0'=__rho_1_^post0, serversdiv2^0'=serversdiv2^post0, curr_serv^0'=curr_serv^post0, (servers^0-servers^post0 == 0 /\ -c^post0+c^0 == 0 /\ -curr_serv^post0+curr_serv^0 == 0 /\ -serversdiv2^post0+serversdiv2^0 == 0 /\ -__rho_1_^post0+__rho_1_^0 == 0 /\ resp^0-resp^post0 == 0 /\ tmp1^0-tmp1^post0 == 0), cost: 1 6: l1 -> l6 : servers^0'=servers^post6, c^0'=c^post6, tmp1^0'=tmp1^post6, resp^0'=resp^post6, __rho_1_^0'=__rho_1_^post6, serversdiv2^0'=serversdiv2^post6, curr_serv^0'=curr_serv^post6, (0 == 0 /\ servers^0-servers^post6 == 0 /\ -serversdiv2^post6+serversdiv2^0 == 0 /\ resp^0-resp^post6 == 0 /\ 1-curr_serv^0 <= 0 /\ -curr_serv^post6+curr_serv^0 == 0 /\ tmp1^0-tmp1^post6 == 0 /\ -c^post6+c^0 == 0), cost: 1 7: l1 -> l4 : servers^0'=servers^post7, c^0'=c^post7, tmp1^0'=tmp1^post7, resp^0'=resp^post7, __rho_1_^0'=__rho_1_^post7, serversdiv2^0'=serversdiv2^post7, curr_serv^0'=curr_serv^post7, (-resp^post7+resp^0 == 0 /\ -curr_serv^post7+curr_serv^0 == 0 /\ -serversdiv2^post7+serversdiv2^0 == 0 /\ tmp1^0-tmp1^post7 == 0 /\ servers^0-servers^post7 == 0 /\ -__rho_1_^post7+__rho_1_^0 == 0 /\ curr_serv^0 <= 0 /\ c^0-c^post7 == 0), cost: 1 2: l4 -> l5 : servers^0'=servers^post2, c^0'=c^post2, tmp1^0'=tmp1^post2, resp^0'=resp^post2, __rho_1_^0'=__rho_1_^post2, serversdiv2^0'=serversdiv2^post2, curr_serv^0'=curr_serv^post2, (c^0-c^post2 == 0 /\ curr_serv^0-curr_serv^post2 == 0 /\ servers^0-servers^post2 == 0 /\ -serversdiv2^post2+serversdiv2^0 == 0 /\ tmp1^0-tmp1^post2 == 0 /\ -resp^post2+resp^0 == 0 /\ -__rho_1_^post2+__rho_1_^0 == 0), cost: 1 3: l5 -> l4 : servers^0'=servers^post3, c^0'=c^post3, tmp1^0'=tmp1^post3, resp^0'=resp^post3, __rho_1_^0'=__rho_1_^post3, serversdiv2^0'=serversdiv2^post3, curr_serv^0'=curr_serv^post3, (-curr_serv^post3+curr_serv^0 == 0 /\ -tmp1^post3+tmp1^0 == 0 /\ c^0-c^post3 == 0 /\ servers^0-servers^post3 == 0 /\ -resp^post3+resp^0 == 0 /\ serversdiv2^0-serversdiv2^post3 == 0 /\ __rho_1_^0-__rho_1_^post3 == 0), cost: 1 4: l6 -> l0 : servers^0'=servers^post4, c^0'=c^post4, tmp1^0'=tmp1^post4, resp^0'=resp^post4, __rho_1_^0'=__rho_1_^post4, serversdiv2^0'=serversdiv2^post4, curr_serv^0'=curr_serv^post4, (1+curr_serv^post4-curr_serv^0 == 0 /\ -tmp1^post4+tmp1^0 == 0 /\ servers^0-servers^post4 == 0 /\ __rho_1_^0 <= 0 /\ 1+c^0-curr_serv^0 <= 0 /\ -resp^post4+resp^0 == 0 /\ __rho_1_^0-__rho_1_^post4 == 0 /\ serversdiv2^0-serversdiv2^post4 == 0 /\ c^0-c^post4 == 0), cost: 1 5: l6 -> l0 : servers^0'=servers^post5, c^0'=c^post5, tmp1^0'=tmp1^post5, resp^0'=resp^post5, __rho_1_^0'=__rho_1_^post5, serversdiv2^0'=serversdiv2^post5, curr_serv^0'=curr_serv^post5, (-tmp1^post5+tmp1^0 == 0 /\ 1+curr_serv^post5-curr_serv^0 == 0 /\ __rho_1_^0-__rho_1_^post5 == 0 /\ 1-c^0+c^post5 == 0 /\ -1-resp^0+resp^post5 == 0 /\ -serversdiv2^post5+serversdiv2^0 == 0 /\ 1-__rho_1_^0 <= 0 /\ servers^0-servers^post5 == 0), cost: 1 8: l7 -> l0 : servers^0'=servers^post8, c^0'=c^post8, tmp1^0'=tmp1^post8, resp^0'=resp^post8, __rho_1_^0'=__rho_1_^post8, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=curr_serv^post8, (0 == 0 /\ c^post8-tmp1^post8 == 0 /\ -1+servers^post8-2*serversdiv2^post8 <= 0 /\ 1-servers^post8+2*serversdiv2^post8 <= 0 /\ resp^post8 == 0 /\ -__rho_1_^post8+__rho_1_^0 == 0 /\ 1-servers^post8 <= 0 /\ 1-c^post8 <= 0 /\ -servers^post8+curr_serv^post8 == 0), cost: 1 9: l8 -> l7 : servers^0'=servers^post9, c^0'=c^post9, tmp1^0'=tmp1^post9, resp^0'=resp^post9, __rho_1_^0'=__rho_1_^post9, serversdiv2^0'=serversdiv2^post9, curr_serv^0'=curr_serv^post9, (c^0-c^post9 == 0 /\ servers^0-servers^post9 == 0 /\ curr_serv^0-curr_serv^post9 == 0 /\ serversdiv2^0-serversdiv2^post9 == 0 /\ tmp1^0-tmp1^post9 == 0 /\ -resp^post9+resp^0 == 0 /\ -__rho_1_^post9+__rho_1_^0 == 0), cost: 1 Applied preprocessing Original rule: l0 -> l1 : servers^0'=servers^post0, c^0'=c^post0, tmp1^0'=tmp1^post0, resp^0'=resp^post0, __rho_1_^0'=__rho_1_^post0, serversdiv2^0'=serversdiv2^post0, curr_serv^0'=curr_serv^post0, (servers^0-servers^post0 == 0 /\ -c^post0+c^0 == 0 /\ -curr_serv^post0+curr_serv^0 == 0 /\ -serversdiv2^post0+serversdiv2^0 == 0 /\ -__rho_1_^post0+__rho_1_^0 == 0 /\ resp^0-resp^post0 == 0 /\ tmp1^0-tmp1^post0 == 0), cost: 1 New rule: l0 -> l1 : TRUE, cost: 1 Applied preprocessing Original rule: l4 -> l5 : servers^0'=servers^post2, c^0'=c^post2, tmp1^0'=tmp1^post2, resp^0'=resp^post2, __rho_1_^0'=__rho_1_^post2, serversdiv2^0'=serversdiv2^post2, curr_serv^0'=curr_serv^post2, (c^0-c^post2 == 0 /\ curr_serv^0-curr_serv^post2 == 0 /\ servers^0-servers^post2 == 0 /\ -serversdiv2^post2+serversdiv2^0 == 0 /\ tmp1^0-tmp1^post2 == 0 /\ -resp^post2+resp^0 == 0 /\ -__rho_1_^post2+__rho_1_^0 == 0), cost: 1 New rule: l4 -> l5 : TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l4 : servers^0'=servers^post3, c^0'=c^post3, tmp1^0'=tmp1^post3, resp^0'=resp^post3, __rho_1_^0'=__rho_1_^post3, serversdiv2^0'=serversdiv2^post3, curr_serv^0'=curr_serv^post3, (-curr_serv^post3+curr_serv^0 == 0 /\ -tmp1^post3+tmp1^0 == 0 /\ c^0-c^post3 == 0 /\ servers^0-servers^post3 == 0 /\ -resp^post3+resp^0 == 0 /\ serversdiv2^0-serversdiv2^post3 == 0 /\ __rho_1_^0-__rho_1_^post3 == 0), cost: 1 New rule: l5 -> l4 : TRUE, cost: 1 Applied preprocessing Original rule: l6 -> l0 : servers^0'=servers^post4, c^0'=c^post4, tmp1^0'=tmp1^post4, resp^0'=resp^post4, __rho_1_^0'=__rho_1_^post4, serversdiv2^0'=serversdiv2^post4, curr_serv^0'=curr_serv^post4, (1+curr_serv^post4-curr_serv^0 == 0 /\ -tmp1^post4+tmp1^0 == 0 /\ servers^0-servers^post4 == 0 /\ __rho_1_^0 <= 0 /\ 1+c^0-curr_serv^0 <= 0 /\ -resp^post4+resp^0 == 0 /\ __rho_1_^0-__rho_1_^post4 == 0 /\ serversdiv2^0-serversdiv2^post4 == 0 /\ c^0-c^post4 == 0), cost: 1 New rule: l6 -> l0 : curr_serv^0'=-1+curr_serv^0, (__rho_1_^0 <= 0 /\ 1+c^0-curr_serv^0 <= 0), cost: 1 Applied preprocessing Original rule: l6 -> l0 : servers^0'=servers^post5, c^0'=c^post5, tmp1^0'=tmp1^post5, resp^0'=resp^post5, __rho_1_^0'=__rho_1_^post5, serversdiv2^0'=serversdiv2^post5, curr_serv^0'=curr_serv^post5, (-tmp1^post5+tmp1^0 == 0 /\ 1+curr_serv^post5-curr_serv^0 == 0 /\ __rho_1_^0-__rho_1_^post5 == 0 /\ 1-c^0+c^post5 == 0 /\ -1-resp^0+resp^post5 == 0 /\ -serversdiv2^post5+serversdiv2^0 == 0 /\ 1-__rho_1_^0 <= 0 /\ servers^0-servers^post5 == 0), cost: 1 New rule: l6 -> l0 : c^0'=-1+c^0, resp^0'=1+resp^0, curr_serv^0'=-1+curr_serv^0, -1+__rho_1_^0 >= 0, cost: 1 Applied preprocessing Original rule: l1 -> l6 : servers^0'=servers^post6, c^0'=c^post6, tmp1^0'=tmp1^post6, resp^0'=resp^post6, __rho_1_^0'=__rho_1_^post6, serversdiv2^0'=serversdiv2^post6, curr_serv^0'=curr_serv^post6, (0 == 0 /\ servers^0-servers^post6 == 0 /\ -serversdiv2^post6+serversdiv2^0 == 0 /\ resp^0-resp^post6 == 0 /\ 1-curr_serv^0 <= 0 /\ -curr_serv^post6+curr_serv^0 == 0 /\ tmp1^0-tmp1^post6 == 0 /\ -c^post6+c^0 == 0), cost: 1 New rule: l1 -> l6 : __rho_1_^0'=__rho_1_^post6, -1+curr_serv^0 >= 0, cost: 1 Applied preprocessing Original rule: l1 -> l4 : servers^0'=servers^post7, c^0'=c^post7, tmp1^0'=tmp1^post7, resp^0'=resp^post7, __rho_1_^0'=__rho_1_^post7, serversdiv2^0'=serversdiv2^post7, curr_serv^0'=curr_serv^post7, (-resp^post7+resp^0 == 0 /\ -curr_serv^post7+curr_serv^0 == 0 /\ -serversdiv2^post7+serversdiv2^0 == 0 /\ tmp1^0-tmp1^post7 == 0 /\ servers^0-servers^post7 == 0 /\ -__rho_1_^post7+__rho_1_^0 == 0 /\ curr_serv^0 <= 0 /\ c^0-c^post7 == 0), cost: 1 New rule: l1 -> l4 : curr_serv^0 <= 0, cost: 1 Applied preprocessing Original rule: l7 -> l0 : servers^0'=servers^post8, c^0'=c^post8, tmp1^0'=tmp1^post8, resp^0'=resp^post8, __rho_1_^0'=__rho_1_^post8, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=curr_serv^post8, (0 == 0 /\ c^post8-tmp1^post8 == 0 /\ -1+servers^post8-2*serversdiv2^post8 <= 0 /\ 1-servers^post8+2*serversdiv2^post8 <= 0 /\ resp^post8 == 0 /\ -__rho_1_^post8+__rho_1_^0 == 0 /\ 1-servers^post8 <= 0 /\ 1-c^post8 <= 0 /\ -servers^post8+curr_serv^post8 == 0), cost: 1 New rule: l7 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 1 Applied preprocessing Original rule: l8 -> l7 : servers^0'=servers^post9, c^0'=c^post9, tmp1^0'=tmp1^post9, resp^0'=resp^post9, __rho_1_^0'=__rho_1_^post9, serversdiv2^0'=serversdiv2^post9, curr_serv^0'=curr_serv^post9, (c^0-c^post9 == 0 /\ servers^0-servers^post9 == 0 /\ curr_serv^0-curr_serv^post9 == 0 /\ serversdiv2^0-serversdiv2^post9 == 0 /\ tmp1^0-tmp1^post9 == 0 /\ -resp^post9+resp^0 == 0 /\ -__rho_1_^post9+__rho_1_^0 == 0), cost: 1 New rule: l8 -> l7 : TRUE, cost: 1 Simplified rules Start location: l8 10: l0 -> l1 : TRUE, cost: 1 15: l1 -> l6 : __rho_1_^0'=__rho_1_^post6, -1+curr_serv^0 >= 0, cost: 1 16: l1 -> l4 : curr_serv^0 <= 0, cost: 1 11: l4 -> l5 : TRUE, cost: 1 12: l5 -> l4 : TRUE, cost: 1 13: l6 -> l0 : curr_serv^0'=-1+curr_serv^0, (__rho_1_^0 <= 0 /\ 1+c^0-curr_serv^0 <= 0), cost: 1 14: l6 -> l0 : c^0'=-1+c^0, resp^0'=1+resp^0, curr_serv^0'=-1+curr_serv^0, -1+__rho_1_^0 >= 0, cost: 1 17: l7 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 1 18: l8 -> l7 : TRUE, cost: 1 Eliminating location l7 by chaining: Applied chaining First rule: l8 -> l7 : TRUE, cost: 1 Second rule: l7 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 1 New rule: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 2 Applied deletion Removed the following rules: 17 18 Eliminating location l5 by chaining: Applied chaining First rule: l4 -> l5 : TRUE, cost: 1 Second rule: l5 -> l4 : TRUE, cost: 1 New rule: l4 -> l4 : TRUE, cost: 2 Applied deletion Removed the following rules: 11 12 Eliminated locations on linear paths Start location: l8 10: l0 -> l1 : TRUE, cost: 1 15: l1 -> l6 : __rho_1_^0'=__rho_1_^post6, -1+curr_serv^0 >= 0, cost: 1 16: l1 -> l4 : curr_serv^0 <= 0, cost: 1 20: l4 -> l4 : TRUE, cost: 2 13: l6 -> l0 : curr_serv^0'=-1+curr_serv^0, (__rho_1_^0 <= 0 /\ 1+c^0-curr_serv^0 <= 0), cost: 1 14: l6 -> l0 : c^0'=-1+c^0, resp^0'=1+resp^0, curr_serv^0'=-1+curr_serv^0, -1+__rho_1_^0 >= 0, cost: 1 19: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 2 Applied nonterm Original rule: l4 -> l4 : TRUE, cost: 2 New rule: l4 -> [9] : n >= 0, cost: NONTERM Sub-proof via acceration calculus written to file:///tmp/tmpnam_AAmAFh.txt Applied deletion Removed the following rules: 20 Accelerated simple loops Start location: l8 10: l0 -> l1 : TRUE, cost: 1 15: l1 -> l6 : __rho_1_^0'=__rho_1_^post6, -1+curr_serv^0 >= 0, cost: 1 16: l1 -> l4 : curr_serv^0 <= 0, cost: 1 21: l4 -> [9] : n >= 0, cost: NONTERM 13: l6 -> l0 : curr_serv^0'=-1+curr_serv^0, (__rho_1_^0 <= 0 /\ 1+c^0-curr_serv^0 <= 0), cost: 1 14: l6 -> l0 : c^0'=-1+c^0, resp^0'=1+resp^0, curr_serv^0'=-1+curr_serv^0, -1+__rho_1_^0 >= 0, cost: 1 19: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 2 Applied chaining First rule: l1 -> l4 : curr_serv^0 <= 0, cost: 1 Second rule: l4 -> [9] : n >= 0, cost: NONTERM New rule: l1 -> [9] : curr_serv^0 <= 0, cost: NONTERM Applied deletion Removed the following rules: 21 Chained accelerated rules with incoming rules Start location: l8 10: l0 -> l1 : TRUE, cost: 1 15: l1 -> l6 : __rho_1_^0'=__rho_1_^post6, -1+curr_serv^0 >= 0, cost: 1 16: l1 -> l4 : curr_serv^0 <= 0, cost: 1 22: l1 -> [9] : curr_serv^0 <= 0, cost: NONTERM 13: l6 -> l0 : curr_serv^0'=-1+curr_serv^0, (__rho_1_^0 <= 0 /\ 1+c^0-curr_serv^0 <= 0), cost: 1 14: l6 -> l0 : c^0'=-1+c^0, resp^0'=1+resp^0, curr_serv^0'=-1+curr_serv^0, -1+__rho_1_^0 >= 0, cost: 1 19: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 2 Removed unreachable locations and irrelevant leafs Start location: l8 10: l0 -> l1 : TRUE, cost: 1 15: l1 -> l6 : __rho_1_^0'=__rho_1_^post6, -1+curr_serv^0 >= 0, cost: 1 22: l1 -> [9] : curr_serv^0 <= 0, cost: NONTERM 13: l6 -> l0 : curr_serv^0'=-1+curr_serv^0, (__rho_1_^0 <= 0 /\ 1+c^0-curr_serv^0 <= 0), cost: 1 14: l6 -> l0 : c^0'=-1+c^0, resp^0'=1+resp^0, curr_serv^0'=-1+curr_serv^0, -1+__rho_1_^0 >= 0, cost: 1 19: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 2 Eliminating location l1 by chaining: Applied chaining First rule: l0 -> l1 : TRUE, cost: 1 Second rule: l1 -> l6 : __rho_1_^0'=__rho_1_^post6, -1+curr_serv^0 >= 0, cost: 1 New rule: l0 -> l6 : __rho_1_^0'=__rho_1_^post6, -1+curr_serv^0 >= 0, cost: 2 Applied chaining First rule: l0 -> l1 : TRUE, cost: 1 Second rule: l1 -> [9] : curr_serv^0 <= 0, cost: NONTERM New rule: l0 -> [9] : curr_serv^0 <= 0, cost: NONTERM Applied deletion Removed the following rules: 10 15 22 Eliminated locations on tree-shaped paths Start location: l8 23: l0 -> l6 : __rho_1_^0'=__rho_1_^post6, -1+curr_serv^0 >= 0, cost: 2 24: l0 -> [9] : curr_serv^0 <= 0, cost: NONTERM 13: l6 -> l0 : curr_serv^0'=-1+curr_serv^0, (__rho_1_^0 <= 0 /\ 1+c^0-curr_serv^0 <= 0), cost: 1 14: l6 -> l0 : c^0'=-1+c^0, resp^0'=1+resp^0, curr_serv^0'=-1+curr_serv^0, -1+__rho_1_^0 >= 0, cost: 1 19: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 2 Eliminating location l6 by chaining: Applied chaining First rule: l0 -> l6 : __rho_1_^0'=__rho_1_^post6, -1+curr_serv^0 >= 0, cost: 2 Second rule: l6 -> l0 : curr_serv^0'=-1+curr_serv^0, (__rho_1_^0 <= 0 /\ 1+c^0-curr_serv^0 <= 0), cost: 1 New rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=-1+curr_serv^0, (__rho_1_^post6 <= 0 /\ -1+curr_serv^0 >= 0 /\ 1+c^0-curr_serv^0 <= 0), cost: 3 Applied chaining First rule: l0 -> l6 : __rho_1_^0'=__rho_1_^post6, -1+curr_serv^0 >= 0, cost: 2 Second rule: l6 -> l0 : c^0'=-1+c^0, resp^0'=1+resp^0, curr_serv^0'=-1+curr_serv^0, -1+__rho_1_^0 >= 0, cost: 1 New rule: l0 -> l0 : c^0'=-1+c^0, resp^0'=1+resp^0, __rho_1_^0'=__rho_1_^post6, curr_serv^0'=-1+curr_serv^0, (-1+curr_serv^0 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 3 Applied deletion Removed the following rules: 13 14 23 Eliminated locations on tree-shaped paths Start location: l8 24: l0 -> [9] : curr_serv^0 <= 0, cost: NONTERM 25: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=-1+curr_serv^0, (__rho_1_^post6 <= 0 /\ -1+curr_serv^0 >= 0 /\ 1+c^0-curr_serv^0 <= 0), cost: 3 26: l0 -> l0 : c^0'=-1+c^0, resp^0'=1+resp^0, __rho_1_^0'=__rho_1_^post6, curr_serv^0'=-1+curr_serv^0, (-1+curr_serv^0 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 3 19: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 2 Applied acceleration Original rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=-1+curr_serv^0, (__rho_1_^post6 <= 0 /\ -1+curr_serv^0 >= 0 /\ 1+c^0-curr_serv^0 <= 0), cost: 3 New rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=-n0+curr_serv^0, (-c^0-n0+curr_serv^0 >= 0 /\ -__rho_1_^post6 >= 0 /\ -n0+curr_serv^0 >= 0 /\ -1+n0 >= 0), cost: 3*n0 Sub-proof via acceration calculus written to file:///tmp/tmpnam_lipaJh.txt Applied instantiation Original rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=-n0+curr_serv^0, (-c^0-n0+curr_serv^0 >= 0 /\ -__rho_1_^post6 >= 0 /\ -n0+curr_serv^0 >= 0 /\ -1+n0 >= 0), cost: 3*n0 New rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=0, (0 >= 0 /\ -1+curr_serv^0 >= 0 /\ -c^0 >= 0 /\ -__rho_1_^post6 >= 0), cost: 3*curr_serv^0 Applied instantiation Original rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=-n0+curr_serv^0, (-c^0-n0+curr_serv^0 >= 0 /\ -__rho_1_^post6 >= 0 /\ -n0+curr_serv^0 >= 0 /\ -1+n0 >= 0), cost: 3*n0 New rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=c^0, (0 >= 0 /\ c^0 >= 0 /\ -1-c^0+curr_serv^0 >= 0 /\ -__rho_1_^post6 >= 0), cost: -3*c^0+3*curr_serv^0 Applied acceleration Original rule: l0 -> l0 : c^0'=-1+c^0, resp^0'=1+resp^0, __rho_1_^0'=__rho_1_^post6, curr_serv^0'=-1+curr_serv^0, (-1+curr_serv^0 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 3 New rule: l0 -> l0 : c^0'=c^0-n1, resp^0'=resp^0+n1, __rho_1_^0'=__rho_1_^post6, curr_serv^0'=curr_serv^0-n1, (curr_serv^0-n1 >= 0 /\ -1+n1 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 3*n1 Sub-proof via acceration calculus written to file:///tmp/tmpnam_PfFIAC.txt Applied instantiation Original rule: l0 -> l0 : c^0'=c^0-n1, resp^0'=resp^0+n1, __rho_1_^0'=__rho_1_^post6, curr_serv^0'=curr_serv^0-n1, (curr_serv^0-n1 >= 0 /\ -1+n1 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 3*n1 New rule: l0 -> l0 : c^0'=c^0-curr_serv^0, resp^0'=resp^0+curr_serv^0, __rho_1_^0'=__rho_1_^post6, curr_serv^0'=0, (0 >= 0 /\ -1+curr_serv^0 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 3*curr_serv^0 Applied simplification Original rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=0, (0 >= 0 /\ -1+curr_serv^0 >= 0 /\ -c^0 >= 0 /\ -__rho_1_^post6 >= 0), cost: 3*curr_serv^0 New rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=0, (__rho_1_^post6 <= 0 /\ c^0 <= 0 /\ -1+curr_serv^0 >= 0), cost: 3*curr_serv^0 Applied simplification Original rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=c^0, (0 >= 0 /\ c^0 >= 0 /\ -1-c^0+curr_serv^0 >= 0 /\ -__rho_1_^post6 >= 0), cost: -3*c^0+3*curr_serv^0 New rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=c^0, (__rho_1_^post6 <= 0 /\ c^0 >= 0 /\ -1-c^0+curr_serv^0 >= 0), cost: -3*c^0+3*curr_serv^0 Applied simplification Original rule: l0 -> l0 : c^0'=c^0-curr_serv^0, resp^0'=resp^0+curr_serv^0, __rho_1_^0'=__rho_1_^post6, curr_serv^0'=0, (0 >= 0 /\ -1+curr_serv^0 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 3*curr_serv^0 New rule: l0 -> l0 : c^0'=c^0-curr_serv^0, resp^0'=resp^0+curr_serv^0, __rho_1_^0'=__rho_1_^post6, curr_serv^0'=0, (-1+curr_serv^0 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 3*curr_serv^0 Applied deletion Removed the following rules: 25 26 Accelerated simple loops Start location: l8 24: l0 -> [9] : curr_serv^0 <= 0, cost: NONTERM 30: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=0, (__rho_1_^post6 <= 0 /\ c^0 <= 0 /\ -1+curr_serv^0 >= 0), cost: 3*curr_serv^0 31: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=c^0, (__rho_1_^post6 <= 0 /\ c^0 >= 0 /\ -1-c^0+curr_serv^0 >= 0), cost: -3*c^0+3*curr_serv^0 32: l0 -> l0 : c^0'=c^0-curr_serv^0, resp^0'=resp^0+curr_serv^0, __rho_1_^0'=__rho_1_^post6, curr_serv^0'=0, (-1+curr_serv^0 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 3*curr_serv^0 19: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 2 Applied chaining First rule: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 2 Second rule: l0 -> l0 : __rho_1_^0'=__rho_1_^post6, curr_serv^0'=c^0, (__rho_1_^post6 <= 0 /\ c^0 >= 0 /\ -1-c^0+curr_serv^0 >= 0), cost: -3*c^0+3*curr_serv^0 New rule: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, __rho_1_^0'=__rho_1_^post6, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=tmp1^post8, (__rho_1_^post6 <= 0 /\ -1+tmp1^post8 >= 0 /\ 2*serversdiv2^post8-tmp1^post8 >= 0), cost: 5+6*serversdiv2^post8-3*tmp1^post8 Applied chaining First rule: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 2 Second rule: l0 -> l0 : c^0'=c^0-curr_serv^0, resp^0'=resp^0+curr_serv^0, __rho_1_^0'=__rho_1_^post6, curr_serv^0'=0, (-1+curr_serv^0 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 3*curr_serv^0 New rule: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=-1-2*serversdiv2^post8+tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=1+2*serversdiv2^post8, __rho_1_^0'=__rho_1_^post6, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=0, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 5+6*serversdiv2^post8 Applied deletion Removed the following rules: 30 31 32 Chained accelerated rules with incoming rules Start location: l8 24: l0 -> [9] : curr_serv^0 <= 0, cost: NONTERM 19: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=1+2*serversdiv2^post8, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0), cost: 2 33: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, __rho_1_^0'=__rho_1_^post6, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=tmp1^post8, (__rho_1_^post6 <= 0 /\ -1+tmp1^post8 >= 0 /\ 2*serversdiv2^post8-tmp1^post8 >= 0), cost: 5+6*serversdiv2^post8-3*tmp1^post8 34: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=-1-2*serversdiv2^post8+tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=1+2*serversdiv2^post8, __rho_1_^0'=__rho_1_^post6, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=0, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 5+6*serversdiv2^post8 Eliminating location l0 by chaining: Applied chaining First rule: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=-1-2*serversdiv2^post8+tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=1+2*serversdiv2^post8, __rho_1_^0'=__rho_1_^post6, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=0, (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: 5+6*serversdiv2^post8 Second rule: l0 -> [9] : curr_serv^0 <= 0, cost: NONTERM New rule: l8 -> [9] : (0 <= 0 /\ -1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: NONTERM Applied simplification Original rule: l8 -> [9] : (0 <= 0 /\ -1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: NONTERM New rule: l8 -> [9] : (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: NONTERM Applied partial deletion Original rule: l8 -> l0 : servers^0'=1+2*serversdiv2^post8, c^0'=tmp1^post8, tmp1^0'=tmp1^post8, resp^0'=0, __rho_1_^0'=__rho_1_^post6, serversdiv2^0'=serversdiv2^post8, curr_serv^0'=tmp1^post8, (__rho_1_^post6 <= 0 /\ -1+tmp1^post8 >= 0 /\ 2*serversdiv2^post8-tmp1^post8 >= 0), cost: 5+6*serversdiv2^post8-3*tmp1^post8 New rule: l8 -> [11] : (__rho_1_^post6 <= 0 /\ -1+tmp1^post8 >= 0 /\ 2*serversdiv2^post8-tmp1^post8 >= 0), cost: 5+6*serversdiv2^post8-3*tmp1^post8 Applied deletion Removed the following rules: 19 24 33 34 Eliminated locations on tree-shaped paths Start location: l8 35: l8 -> [9] : (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0 /\ -1+__rho_1_^post6 >= 0), cost: NONTERM 36: l8 -> [11] : (__rho_1_^post6 <= 0 /\ -1+tmp1^post8 >= 0 /\ 2*serversdiv2^post8-tmp1^post8 >= 0), cost: 5+6*serversdiv2^post8-3*tmp1^post8 Computing asymptotic complexity Proved nontermination of rule 35 via SMT. Proved the following lower bound Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: (-1+tmp1^post8 >= 0 /\ serversdiv2^post8 >= 0 /\ -1+__rho_1_^post6 >= 0)