WORST_CASE(Omega(0),?) Initial ITS Start location: l6 0: l0 -> l1 : __const_19^0'=__const_19^post0, oldX1^0'=oldX1^post0, oldX0^0'=oldX0^post0, x0^0'=x0^post0, (0 == 0 /\ -x0^0+oldX0^post0 == 0 /\ x0^post0-oldX1^post0 == 0 /\ __const_19^0-__const_19^post0 == 0), cost: 1 1: l2 -> l3 : __const_19^0'=__const_19^post1, oldX1^0'=oldX1^post1, oldX0^0'=oldX0^post1, x0^0'=x0^post1, (-1-oldX0^post1+x0^post1 == 0 /\ __const_19^0-__const_19^post1 == 0 /\ -oldX1^post1+oldX1^0 == 0 /\ oldX0^post1-x0^0 == 0), cost: 1 2: l3 -> l0 : __const_19^0'=__const_19^post2, oldX1^0'=oldX1^post2, oldX0^0'=oldX0^post2, x0^0'=x0^post2, (1+__const_19^0-oldX0^post2 <= 0 /\ -oldX0^post2+x0^post2 == 0 /\ oldX1^0-oldX1^post2 == 0 /\ oldX0^post2-x0^0 == 0 /\ __const_19^0-__const_19^post2 == 0), cost: 1 3: l3 -> l2 : __const_19^0'=__const_19^post3, oldX1^0'=oldX1^post3, oldX0^0'=oldX0^post3, x0^0'=x0^post3, (__const_19^0-__const_19^post3 == 0 /\ x0^post3-oldX0^post3 == 0 /\ oldX1^0-oldX1^post3 == 0 /\ oldX0^post3-x0^0 == 0 /\ -__const_19^0+oldX0^post3 <= 0), cost: 1 4: l4 -> l3 : __const_19^0'=__const_19^post4, oldX1^0'=oldX1^post4, oldX0^0'=oldX0^post4, x0^0'=x0^post4, (oldX0^post4-x0^0 == 0 /\ x0^post4 == 0 /\ __const_19^0-__const_19^post4 == 0 /\ -oldX1^post4+oldX1^0 == 0), cost: 1 5: l5 -> l4 : __const_19^0'=__const_19^post5, oldX1^0'=oldX1^post5, oldX0^0'=oldX0^post5, x0^0'=x0^post5, (0 == 0 /\ __const_19^0-__const_19^post5 == 0 /\ oldX0^post5-x0^0 == 0 /\ -oldX1^post5+x0^post5 == 0), cost: 1 6: l5 -> l1 : __const_19^0'=__const_19^post6, oldX1^0'=oldX1^post6, oldX0^0'=oldX0^post6, x0^0'=x0^post6, (oldX1^0-oldX1^post6 == 0 /\ x0^0-x0^post6 == 0 /\ __const_19^0-__const_19^post6 == 0 /\ -oldX0^post6+oldX0^0 == 0), cost: 1 7: l5 -> l0 : __const_19^0'=__const_19^post7, oldX1^0'=oldX1^post7, oldX0^0'=oldX0^post7, x0^0'=x0^post7, (__const_19^0-__const_19^post7 == 0 /\ oldX0^0-oldX0^post7 == 0 /\ oldX1^0-oldX1^post7 == 0 /\ -x0^post7+x0^0 == 0), cost: 1 8: l5 -> l2 : __const_19^0'=__const_19^post8, oldX1^0'=oldX1^post8, oldX0^0'=oldX0^post8, x0^0'=x0^post8, (-x0^post8+x0^0 == 0 /\ -oldX0^post8+oldX0^0 == 0 /\ __const_19^0-__const_19^post8 == 0 /\ oldX1^0-oldX1^post8 == 0), cost: 1 9: l5 -> l3 : __const_19^0'=__const_19^post9, oldX1^0'=oldX1^post9, oldX0^0'=oldX0^post9, x0^0'=x0^post9, (-oldX1^post9+oldX1^0 == 0 /\ __const_19^0-__const_19^post9 == 0 /\ -x0^post9+x0^0 == 0 /\ -oldX0^post9+oldX0^0 == 0), cost: 1 10: l5 -> l4 : __const_19^0'=__const_19^post10, oldX1^0'=oldX1^post10, oldX0^0'=oldX0^post10, x0^0'=x0^post10, (-x0^post10+x0^0 == 0 /\ __const_19^0-__const_19^post10 == 0 /\ -oldX0^post10+oldX0^0 == 0 /\ oldX1^0-oldX1^post10 == 0), cost: 1 11: l6 -> l5 : __const_19^0'=__const_19^post11, oldX1^0'=oldX1^post11, oldX0^0'=oldX0^post11, x0^0'=x0^post11, (oldX0^0-oldX0^post11 == 0 /\ -x0^post11+x0^0 == 0 /\ __const_19^0-__const_19^post11 == 0 /\ oldX1^0-oldX1^post11 == 0), cost: 1 Removed unreachable rules and leafs Start location: l6 1: l2 -> l3 : __const_19^0'=__const_19^post1, oldX1^0'=oldX1^post1, oldX0^0'=oldX0^post1, x0^0'=x0^post1, (-1-oldX0^post1+x0^post1 == 0 /\ __const_19^0-__const_19^post1 == 0 /\ -oldX1^post1+oldX1^0 == 0 /\ oldX0^post1-x0^0 == 0), cost: 1 3: l3 -> l2 : __const_19^0'=__const_19^post3, oldX1^0'=oldX1^post3, oldX0^0'=oldX0^post3, x0^0'=x0^post3, (__const_19^0-__const_19^post3 == 0 /\ x0^post3-oldX0^post3 == 0 /\ oldX1^0-oldX1^post3 == 0 /\ oldX0^post3-x0^0 == 0 /\ -__const_19^0+oldX0^post3 <= 0), cost: 1 4: l4 -> l3 : __const_19^0'=__const_19^post4, oldX1^0'=oldX1^post4, oldX0^0'=oldX0^post4, x0^0'=x0^post4, (oldX0^post4-x0^0 == 0 /\ x0^post4 == 0 /\ __const_19^0-__const_19^post4 == 0 /\ -oldX1^post4+oldX1^0 == 0), cost: 1 5: l5 -> l4 : __const_19^0'=__const_19^post5, oldX1^0'=oldX1^post5, oldX0^0'=oldX0^post5, x0^0'=x0^post5, (0 == 0 /\ __const_19^0-__const_19^post5 == 0 /\ oldX0^post5-x0^0 == 0 /\ -oldX1^post5+x0^post5 == 0), cost: 1 8: l5 -> l2 : __const_19^0'=__const_19^post8, oldX1^0'=oldX1^post8, oldX0^0'=oldX0^post8, x0^0'=x0^post8, (-x0^post8+x0^0 == 0 /\ -oldX0^post8+oldX0^0 == 0 /\ __const_19^0-__const_19^post8 == 0 /\ oldX1^0-oldX1^post8 == 0), cost: 1 9: l5 -> l3 : __const_19^0'=__const_19^post9, oldX1^0'=oldX1^post9, oldX0^0'=oldX0^post9, x0^0'=x0^post9, (-oldX1^post9+oldX1^0 == 0 /\ __const_19^0-__const_19^post9 == 0 /\ -x0^post9+x0^0 == 0 /\ -oldX0^post9+oldX0^0 == 0), cost: 1 10: l5 -> l4 : __const_19^0'=__const_19^post10, oldX1^0'=oldX1^post10, oldX0^0'=oldX0^post10, x0^0'=x0^post10, (-x0^post10+x0^0 == 0 /\ __const_19^0-__const_19^post10 == 0 /\ -oldX0^post10+oldX0^0 == 0 /\ oldX1^0-oldX1^post10 == 0), cost: 1 11: l6 -> l5 : __const_19^0'=__const_19^post11, oldX1^0'=oldX1^post11, oldX0^0'=oldX0^post11, x0^0'=x0^post11, (oldX0^0-oldX0^post11 == 0 /\ -x0^post11+x0^0 == 0 /\ __const_19^0-__const_19^post11 == 0 /\ oldX1^0-oldX1^post11 == 0), cost: 1 Applied preprocessing Original rule: l2 -> l3 : __const_19^0'=__const_19^post1, oldX1^0'=oldX1^post1, oldX0^0'=oldX0^post1, x0^0'=x0^post1, (-1-oldX0^post1+x0^post1 == 0 /\ __const_19^0-__const_19^post1 == 0 /\ -oldX1^post1+oldX1^0 == 0 /\ oldX0^post1-x0^0 == 0), cost: 1 New rule: l2 -> l3 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 1 Applied preprocessing Original rule: l3 -> l2 : __const_19^0'=__const_19^post3, oldX1^0'=oldX1^post3, oldX0^0'=oldX0^post3, x0^0'=x0^post3, (__const_19^0-__const_19^post3 == 0 /\ x0^post3-oldX0^post3 == 0 /\ oldX1^0-oldX1^post3 == 0 /\ oldX0^post3-x0^0 == 0 /\ -__const_19^0+oldX0^post3 <= 0), cost: 1 New rule: l3 -> l2 : oldX0^0'=x0^0, -__const_19^0+x0^0 <= 0, cost: 1 Applied preprocessing Original rule: l4 -> l3 : __const_19^0'=__const_19^post4, oldX1^0'=oldX1^post4, oldX0^0'=oldX0^post4, x0^0'=x0^post4, (oldX0^post4-x0^0 == 0 /\ x0^post4 == 0 /\ __const_19^0-__const_19^post4 == 0 /\ -oldX1^post4+oldX1^0 == 0), cost: 1 New rule: l4 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l4 : __const_19^0'=__const_19^post5, oldX1^0'=oldX1^post5, oldX0^0'=oldX0^post5, x0^0'=x0^post5, (0 == 0 /\ __const_19^0-__const_19^post5 == 0 /\ oldX0^post5-x0^0 == 0 /\ -oldX1^post5+x0^post5 == 0), cost: 1 New rule: l5 -> l4 : oldX1^0'=x0^post5, oldX0^0'=x0^0, x0^0'=x0^post5, 0 == 0, cost: 1 Applied preprocessing Original rule: l5 -> l2 : __const_19^0'=__const_19^post8, oldX1^0'=oldX1^post8, oldX0^0'=oldX0^post8, x0^0'=x0^post8, (-x0^post8+x0^0 == 0 /\ -oldX0^post8+oldX0^0 == 0 /\ __const_19^0-__const_19^post8 == 0 /\ oldX1^0-oldX1^post8 == 0), cost: 1 New rule: l5 -> l2 : TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l3 : __const_19^0'=__const_19^post9, oldX1^0'=oldX1^post9, oldX0^0'=oldX0^post9, x0^0'=x0^post9, (-oldX1^post9+oldX1^0 == 0 /\ __const_19^0-__const_19^post9 == 0 /\ -x0^post9+x0^0 == 0 /\ -oldX0^post9+oldX0^0 == 0), cost: 1 New rule: l5 -> l3 : TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l4 : __const_19^0'=__const_19^post10, oldX1^0'=oldX1^post10, oldX0^0'=oldX0^post10, x0^0'=x0^post10, (-x0^post10+x0^0 == 0 /\ __const_19^0-__const_19^post10 == 0 /\ -oldX0^post10+oldX0^0 == 0 /\ oldX1^0-oldX1^post10 == 0), cost: 1 New rule: l5 -> l4 : TRUE, cost: 1 Applied preprocessing Original rule: l6 -> l5 : __const_19^0'=__const_19^post11, oldX1^0'=oldX1^post11, oldX0^0'=oldX0^post11, x0^0'=x0^post11, (oldX0^0-oldX0^post11 == 0 /\ -x0^post11+x0^0 == 0 /\ __const_19^0-__const_19^post11 == 0 /\ oldX1^0-oldX1^post11 == 0), cost: 1 New rule: l6 -> l5 : TRUE, cost: 1 Simplified rules Start location: l6 12: l2 -> l3 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 1 13: l3 -> l2 : oldX0^0'=x0^0, -__const_19^0+x0^0 <= 0, cost: 1 14: l4 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 15: l5 -> l4 : oldX1^0'=x0^post5, oldX0^0'=x0^0, x0^0'=x0^post5, 0 == 0, cost: 1 16: l5 -> l2 : TRUE, cost: 1 17: l5 -> l3 : TRUE, cost: 1 18: l5 -> l4 : TRUE, cost: 1 19: l6 -> l5 : TRUE, cost: 1 Eliminating location l5 by chaining: Applied chaining First rule: l6 -> l5 : TRUE, cost: 1 Second rule: l5 -> l4 : oldX1^0'=x0^post5, oldX0^0'=x0^0, x0^0'=x0^post5, 0 == 0, cost: 1 New rule: l6 -> l4 : oldX1^0'=x0^post5, oldX0^0'=x0^0, x0^0'=x0^post5, 0 == 0, cost: 2 Applied chaining First rule: l6 -> l5 : TRUE, cost: 1 Second rule: l5 -> l2 : TRUE, cost: 1 New rule: l6 -> l2 : TRUE, cost: 2 Applied chaining First rule: l6 -> l5 : TRUE, cost: 1 Second rule: l5 -> l3 : TRUE, cost: 1 New rule: l6 -> l3 : TRUE, cost: 2 Applied chaining First rule: l6 -> l5 : TRUE, cost: 1 Second rule: l5 -> l4 : TRUE, cost: 1 New rule: l6 -> l4 : TRUE, cost: 2 Applied deletion Removed the following rules: 15 16 17 18 19 Eliminated locations on tree-shaped paths Start location: l6 12: l2 -> l3 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 1 13: l3 -> l2 : oldX0^0'=x0^0, -__const_19^0+x0^0 <= 0, cost: 1 14: l4 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 20: l6 -> l4 : oldX1^0'=x0^post5, oldX0^0'=x0^0, x0^0'=x0^post5, 0 == 0, cost: 2 21: l6 -> l2 : TRUE, cost: 2 22: l6 -> l3 : TRUE, cost: 2 23: l6 -> l4 : TRUE, cost: 2 Eliminating location l4 by chaining: Applied chaining First rule: l6 -> l4 : oldX1^0'=x0^post5, oldX0^0'=x0^0, x0^0'=x0^post5, 0 == 0, cost: 2 Second rule: l4 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 New rule: l6 -> l3 : oldX1^0'=x0^post5, oldX0^0'=x0^post5, x0^0'=0, 0 == 0, cost: 3 Applied chaining First rule: l6 -> l4 : TRUE, cost: 2 Second rule: l4 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 New rule: l6 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 Applied deletion Removed the following rules: 14 20 23 Eliminated locations on tree-shaped paths Start location: l6 12: l2 -> l3 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 1 13: l3 -> l2 : oldX0^0'=x0^0, -__const_19^0+x0^0 <= 0, cost: 1 21: l6 -> l2 : TRUE, cost: 2 22: l6 -> l3 : TRUE, cost: 2 24: l6 -> l3 : oldX1^0'=x0^post5, oldX0^0'=x0^post5, x0^0'=0, 0 == 0, cost: 3 25: l6 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 Eliminated location l2 Start location: l6 26: l3 -> l3 : oldX0^0'=x0^0, x0^0'=1+x0^0, -__const_19^0+x0^0 <= 0, cost: 2 22: l6 -> l3 : TRUE, cost: 2 24: l6 -> l3 : oldX1^0'=x0^post5, oldX0^0'=x0^post5, x0^0'=0, 0 == 0, cost: 3 25: l6 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 27: l6 -> l3 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 3 Applied acceleration Original rule: l3 -> l3 : oldX0^0'=x0^0, x0^0'=1+x0^0, -__const_19^0+x0^0 <= 0, cost: 2 New rule: l3 -> l3 : oldX0^0'=-1+n0+x0^0, x0^0'=n0+x0^0, (-1+n0 >= 0 /\ 1+__const_19^0-n0-x0^0 >= 0), cost: 2*n0 Applied instantiation Original rule: l3 -> l3 : oldX0^0'=-1+n0+x0^0, x0^0'=n0+x0^0, (-1+n0 >= 0 /\ 1+__const_19^0-n0-x0^0 >= 0), cost: 2*n0 New rule: l3 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, (0 >= 0 /\ __const_19^0-x0^0 >= 0), cost: 2+2*__const_19^0-2*x0^0 Applied simplification Original rule: l3 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, (0 >= 0 /\ __const_19^0-x0^0 >= 0), cost: 2+2*__const_19^0-2*x0^0 New rule: l3 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0-x0^0 >= 0, cost: 2+2*__const_19^0-2*x0^0 Applied deletion Removed the following rules: 26 Accelerated simple loops Start location: l6 29: l3 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0-x0^0 >= 0, cost: 2+2*__const_19^0-2*x0^0 22: l6 -> l3 : TRUE, cost: 2 24: l6 -> l3 : oldX1^0'=x0^post5, oldX0^0'=x0^post5, x0^0'=0, 0 == 0, cost: 3 25: l6 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 27: l6 -> l3 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 3 Applied chaining First rule: l6 -> l3 : TRUE, cost: 2 Second rule: l3 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0-x0^0 >= 0, cost: 2+2*__const_19^0-2*x0^0 New rule: l6 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0-x0^0 >= 0, cost: 4+2*__const_19^0-2*x0^0 Applied chaining First rule: l6 -> l3 : oldX1^0'=x0^post5, oldX0^0'=x0^post5, x0^0'=0, 0 == 0, cost: 3 Second rule: l3 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0-x0^0 >= 0, cost: 2+2*__const_19^0-2*x0^0 New rule: l6 -> l3 : oldX1^0'=x0^post5, oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0 >= 0, cost: 5+2*__const_19^0 Applied chaining First rule: l6 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 Second rule: l3 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0-x0^0 >= 0, cost: 2+2*__const_19^0-2*x0^0 New rule: l6 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0 >= 0, cost: 5+2*__const_19^0 Applied chaining First rule: l6 -> l3 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 3 Second rule: l3 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0-x0^0 >= 0, cost: 2+2*__const_19^0-2*x0^0 New rule: l6 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, -1+__const_19^0-x0^0 >= 0, cost: 3+2*__const_19^0-2*x0^0 Applied deletion Removed the following rules: 29 Chained accelerated rules with incoming rules Start location: l6 22: l6 -> l3 : TRUE, cost: 2 24: l6 -> l3 : oldX1^0'=x0^post5, oldX0^0'=x0^post5, x0^0'=0, 0 == 0, cost: 3 25: l6 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 27: l6 -> l3 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 3 30: l6 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0-x0^0 >= 0, cost: 4+2*__const_19^0-2*x0^0 31: l6 -> l3 : oldX1^0'=x0^post5, oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0 >= 0, cost: 5+2*__const_19^0 32: l6 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, __const_19^0 >= 0, cost: 5+2*__const_19^0 33: l6 -> l3 : oldX0^0'=__const_19^0, x0^0'=1+__const_19^0, -1+__const_19^0-x0^0 >= 0, cost: 3+2*__const_19^0-2*x0^0 Removed unreachable locations and irrelevant leafs Start location: l6 Computing asymptotic complexity Proved the following lower bound Complexity: Unknown Cpx degree: ? Solved cost: 0 Rule cost: 0