WORST_CASE(Omega(0),?) Initial ITS Start location: l5 0: l0 -> l1 : __const_127^0'=__const_127^post0, counter^0'=counter^post0, z^0'=z^post0, __const_36^0'=__const_36^post0, y^0'=y^post0, (-counter^0+__const_36^0 <= 0 /\ z^0-z^post0 == 0 /\ __const_127^0-__const_127^post0 == 0 /\ -y^post0+y^0 == 0 /\ -__const_36^post0+__const_36^0 == 0 /\ counter^0-counter^post0 == 0), cost: 1 1: l0 -> l2 : __const_127^0'=__const_127^post1, counter^0'=counter^post1, z^0'=z^post1, __const_36^0'=__const_36^post1, y^0'=y^post1, (1+counter^0-__const_36^0 <= 0 /\ -1+counter^post1-counter^0 == 0 /\ __const_127^0-__const_127^post1 == 0 /\ -1+z^post1-z^0 == 0 /\ __const_36^0-__const_36^post1 == 0 /\ -y^post1+y^0 == 0), cost: 1 4: l2 -> l0 : __const_127^0'=__const_127^post4, counter^0'=counter^post4, z^0'=z^post4, __const_36^0'=__const_36^post4, y^0'=y^post4, (-y^post4+y^0 == 0 /\ -z^post4+z^0 == 0 /\ -__const_36^post4+__const_36^0 == 0 /\ __const_127^0-__const_127^post4 == 0 /\ counter^0-counter^post4 == 0), cost: 1 2: l3 -> l2 : __const_127^0'=__const_127^post2, counter^0'=counter^post2, z^0'=z^post2, __const_36^0'=__const_36^post2, y^0'=y^post2, (0 == 0 /\ __const_127^0-__const_127^post2 == 0 /\ -__const_127^0+y^0 <= 0 /\ -__const_36^post2+__const_36^0 == 0 /\ counter^0-counter^post2 == 0 /\ -y^post2+y^0 == 0), cost: 1 3: l3 -> l1 : __const_127^0'=__const_127^post3, counter^0'=counter^post3, z^0'=z^post3, __const_36^0'=__const_36^post3, y^0'=y^post3, (-y^post3+y^0 == 0 /\ 1+__const_127^0-y^0 <= 0 /\ z^0-z^post3 == 0 /\ __const_36^0-__const_36^post3 == 0 /\ counter^0-counter^post3 == 0 /\ __const_127^0-__const_127^post3 == 0), cost: 1 5: l4 -> l3 : __const_127^0'=__const_127^post5, counter^0'=counter^post5, z^0'=z^post5, __const_36^0'=__const_36^post5, y^0'=y^post5, (-y^post5+y^0 == 0 /\ counter^post5 == 0 /\ z^0-z^post5 == 0 /\ __const_127^0-__const_127^post5 == 0 /\ -__const_36^post5+__const_36^0 == 0), cost: 1 6: l5 -> l4 : __const_127^0'=__const_127^post6, counter^0'=counter^post6, z^0'=z^post6, __const_36^0'=__const_36^post6, y^0'=y^post6, (y^0-y^post6 == 0 /\ -z^post6+z^0 == 0 /\ __const_127^0-__const_127^post6 == 0 /\ counter^0-counter^post6 == 0 /\ -__const_36^post6+__const_36^0 == 0), cost: 1 Removed unreachable rules and leafs Start location: l5 1: l0 -> l2 : __const_127^0'=__const_127^post1, counter^0'=counter^post1, z^0'=z^post1, __const_36^0'=__const_36^post1, y^0'=y^post1, (1+counter^0-__const_36^0 <= 0 /\ -1+counter^post1-counter^0 == 0 /\ __const_127^0-__const_127^post1 == 0 /\ -1+z^post1-z^0 == 0 /\ __const_36^0-__const_36^post1 == 0 /\ -y^post1+y^0 == 0), cost: 1 4: l2 -> l0 : __const_127^0'=__const_127^post4, counter^0'=counter^post4, z^0'=z^post4, __const_36^0'=__const_36^post4, y^0'=y^post4, (-y^post4+y^0 == 0 /\ -z^post4+z^0 == 0 /\ -__const_36^post4+__const_36^0 == 0 /\ __const_127^0-__const_127^post4 == 0 /\ counter^0-counter^post4 == 0), cost: 1 2: l3 -> l2 : __const_127^0'=__const_127^post2, counter^0'=counter^post2, z^0'=z^post2, __const_36^0'=__const_36^post2, y^0'=y^post2, (0 == 0 /\ __const_127^0-__const_127^post2 == 0 /\ -__const_127^0+y^0 <= 0 /\ -__const_36^post2+__const_36^0 == 0 /\ counter^0-counter^post2 == 0 /\ -y^post2+y^0 == 0), cost: 1 5: l4 -> l3 : __const_127^0'=__const_127^post5, counter^0'=counter^post5, z^0'=z^post5, __const_36^0'=__const_36^post5, y^0'=y^post5, (-y^post5+y^0 == 0 /\ counter^post5 == 0 /\ z^0-z^post5 == 0 /\ __const_127^0-__const_127^post5 == 0 /\ -__const_36^post5+__const_36^0 == 0), cost: 1 6: l5 -> l4 : __const_127^0'=__const_127^post6, counter^0'=counter^post6, z^0'=z^post6, __const_36^0'=__const_36^post6, y^0'=y^post6, (y^0-y^post6 == 0 /\ -z^post6+z^0 == 0 /\ __const_127^0-__const_127^post6 == 0 /\ counter^0-counter^post6 == 0 /\ -__const_36^post6+__const_36^0 == 0), cost: 1 Applied preprocessing Original rule: l0 -> l2 : __const_127^0'=__const_127^post1, counter^0'=counter^post1, z^0'=z^post1, __const_36^0'=__const_36^post1, y^0'=y^post1, (1+counter^0-__const_36^0 <= 0 /\ -1+counter^post1-counter^0 == 0 /\ __const_127^0-__const_127^post1 == 0 /\ -1+z^post1-z^0 == 0 /\ __const_36^0-__const_36^post1 == 0 /\ -y^post1+y^0 == 0), cost: 1 New rule: l0 -> l2 : counter^0'=1+counter^0, z^0'=1+z^0, 1+counter^0-__const_36^0 <= 0, cost: 1 Applied preprocessing Original rule: l3 -> l2 : __const_127^0'=__const_127^post2, counter^0'=counter^post2, z^0'=z^post2, __const_36^0'=__const_36^post2, y^0'=y^post2, (0 == 0 /\ __const_127^0-__const_127^post2 == 0 /\ -__const_127^0+y^0 <= 0 /\ -__const_36^post2+__const_36^0 == 0 /\ counter^0-counter^post2 == 0 /\ -y^post2+y^0 == 0), cost: 1 New rule: l3 -> l2 : z^0'=z^post2, -__const_127^0+y^0 <= 0, cost: 1 Applied preprocessing Original rule: l2 -> l0 : __const_127^0'=__const_127^post4, counter^0'=counter^post4, z^0'=z^post4, __const_36^0'=__const_36^post4, y^0'=y^post4, (-y^post4+y^0 == 0 /\ -z^post4+z^0 == 0 /\ -__const_36^post4+__const_36^0 == 0 /\ __const_127^0-__const_127^post4 == 0 /\ counter^0-counter^post4 == 0), cost: 1 New rule: l2 -> l0 : TRUE, cost: 1 Applied preprocessing Original rule: l4 -> l3 : __const_127^0'=__const_127^post5, counter^0'=counter^post5, z^0'=z^post5, __const_36^0'=__const_36^post5, y^0'=y^post5, (-y^post5+y^0 == 0 /\ counter^post5 == 0 /\ z^0-z^post5 == 0 /\ __const_127^0-__const_127^post5 == 0 /\ -__const_36^post5+__const_36^0 == 0), cost: 1 New rule: l4 -> l3 : counter^0'=0, TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l4 : __const_127^0'=__const_127^post6, counter^0'=counter^post6, z^0'=z^post6, __const_36^0'=__const_36^post6, y^0'=y^post6, (y^0-y^post6 == 0 /\ -z^post6+z^0 == 0 /\ __const_127^0-__const_127^post6 == 0 /\ counter^0-counter^post6 == 0 /\ -__const_36^post6+__const_36^0 == 0), cost: 1 New rule: l5 -> l4 : TRUE, cost: 1 Simplified rules Start location: l5 7: l0 -> l2 : counter^0'=1+counter^0, z^0'=1+z^0, 1+counter^0-__const_36^0 <= 0, cost: 1 9: l2 -> l0 : TRUE, cost: 1 8: l3 -> l2 : z^0'=z^post2, -__const_127^0+y^0 <= 0, cost: 1 10: l4 -> l3 : counter^0'=0, TRUE, cost: 1 11: l5 -> l4 : TRUE, cost: 1 Eliminating location l4 by chaining: Applied chaining First rule: l5 -> l4 : TRUE, cost: 1 Second rule: l4 -> l3 : counter^0'=0, TRUE, cost: 1 New rule: l5 -> l3 : counter^0'=0, TRUE, cost: 2 Applied deletion Removed the following rules: 10 11 Eliminating location l3 by chaining: Applied chaining First rule: l5 -> l3 : counter^0'=0, TRUE, cost: 2 Second rule: l3 -> l2 : z^0'=z^post2, -__const_127^0+y^0 <= 0, cost: 1 New rule: l5 -> l2 : counter^0'=0, z^0'=z^post2, -__const_127^0+y^0 <= 0, cost: 3 Applied deletion Removed the following rules: 8 12 Eliminating location l0 by chaining: Applied chaining First rule: l2 -> l0 : TRUE, cost: 1 Second rule: l0 -> l2 : counter^0'=1+counter^0, z^0'=1+z^0, 1+counter^0-__const_36^0 <= 0, cost: 1 New rule: l2 -> l2 : counter^0'=1+counter^0, z^0'=1+z^0, 1+counter^0-__const_36^0 <= 0, cost: 2 Applied deletion Removed the following rules: 7 9 Eliminated locations on linear paths Start location: l5 14: l2 -> l2 : counter^0'=1+counter^0, z^0'=1+z^0, 1+counter^0-__const_36^0 <= 0, cost: 2 13: l5 -> l2 : counter^0'=0, z^0'=z^post2, -__const_127^0+y^0 <= 0, cost: 3 Applied acceleration Original rule: l2 -> l2 : counter^0'=1+counter^0, z^0'=1+z^0, 1+counter^0-__const_36^0 <= 0, cost: 2 New rule: l2 -> l2 : counter^0'=counter^0+n0, z^0'=z^0+n0, (-counter^0+__const_36^0-n0 >= 0 /\ n0 >= 0), cost: 2*n0 Applied instantiation Original rule: l2 -> l2 : counter^0'=counter^0+n0, z^0'=z^0+n0, (-counter^0+__const_36^0-n0 >= 0 /\ n0 >= 0), cost: 2*n0 New rule: l2 -> l2 : counter^0'=__const_36^0, z^0'=-counter^0+z^0+__const_36^0, (0 >= 0 /\ -counter^0+__const_36^0 >= 0), cost: -2*counter^0+2*__const_36^0 Applied simplification Original rule: l2 -> l2 : counter^0'=__const_36^0, z^0'=-counter^0+z^0+__const_36^0, (0 >= 0 /\ -counter^0+__const_36^0 >= 0), cost: -2*counter^0+2*__const_36^0 New rule: l2 -> l2 : counter^0'=__const_36^0, z^0'=-counter^0+z^0+__const_36^0, -counter^0+__const_36^0 >= 0, cost: -2*counter^0+2*__const_36^0 Applied deletion Removed the following rules: 14 Accelerated simple loops Start location: l5 16: l2 -> l2 : counter^0'=__const_36^0, z^0'=-counter^0+z^0+__const_36^0, -counter^0+__const_36^0 >= 0, cost: -2*counter^0+2*__const_36^0 13: l5 -> l2 : counter^0'=0, z^0'=z^post2, -__const_127^0+y^0 <= 0, cost: 3 Applied chaining First rule: l5 -> l2 : counter^0'=0, z^0'=z^post2, -__const_127^0+y^0 <= 0, cost: 3 Second rule: l2 -> l2 : counter^0'=__const_36^0, z^0'=-counter^0+z^0+__const_36^0, -counter^0+__const_36^0 >= 0, cost: -2*counter^0+2*__const_36^0 New rule: l5 -> l2 : counter^0'=__const_36^0, z^0'=z^post2+__const_36^0, (-__const_127^0+y^0 <= 0 /\ __const_36^0 >= 0), cost: 3+2*__const_36^0 Applied deletion Removed the following rules: 16 Chained accelerated rules with incoming rules Start location: l5 13: l5 -> l2 : counter^0'=0, z^0'=z^post2, -__const_127^0+y^0 <= 0, cost: 3 17: l5 -> l2 : counter^0'=__const_36^0, z^0'=z^post2+__const_36^0, (-__const_127^0+y^0 <= 0 /\ __const_36^0 >= 0), cost: 3+2*__const_36^0 Removed unreachable locations and irrelevant leafs Start location: l5 Computing asymptotic complexity Proved the following lower bound Complexity: Unknown Cpx degree: ? Solved cost: 0 Rule cost: 0