WORST_CASE(Omega(0),?) Initial ITS Start location: l5 0: l0 -> l1 : op1^0'=op1^post0, op2^0'=op2^post0, (op2^0-op2^post0 == 0 /\ op1^0-op1^post0 == 0 /\ -op1^0 <= 0 /\ -op2^0 <= 0 /\ op2^0 <= 0), cost: 1 6: l1 -> l4 : op1^0'=op1^post6, op2^0'=op2^post6, (1-op1^0 <= 0 /\ 1-op1^0+op1^post6 == 0 /\ -1+op2^post6-op2^0 == 0), cost: 1 1: l2 -> l3 : op1^0'=op1^post1, op2^0'=op2^post1, (-1-op1^0+op1^post1 == 0 /\ 1+op2^post1-op2^0 == 0 /\ 1-op2^0 <= 0), cost: 1 3: l2 -> l4 : op1^0'=op1^post3, op2^0'=op2^post3, (1-op1^0+op1^post3 == 0 /\ -1-op2^0+op2^post3 == 0 /\ 1-op1^0 <= 0), cost: 1 2: l3 -> l2 : op1^0'=op1^post2, op2^0'=op2^post2, (-op2^post2+op2^0 == 0 /\ op1^0-op1^post2 == 0), cost: 1 4: l4 -> l2 : op1^0'=op1^post4, op2^0'=op2^post4, (op1^0-op1^post4 == 0 /\ 1-op2^0 <= 0 /\ 1+op2^post4-op2^0 == 0), cost: 1 5: l4 -> l1 : op1^0'=op1^post5, op2^0'=op2^post5, (op2^0-op2^post5 == 0 /\ op1^0-op1^post5 == 0), cost: 1 7: l5 -> l0 : op1^0'=op1^post7, op2^0'=op2^post7, (op1^0-op1^post7 == 0 /\ -op2^post7+op2^0 == 0), cost: 1 Applied preprocessing Original rule: l0 -> l1 : op1^0'=op1^post0, op2^0'=op2^post0, (op2^0-op2^post0 == 0 /\ op1^0-op1^post0 == 0 /\ -op1^0 <= 0 /\ -op2^0 <= 0 /\ op2^0 <= 0), cost: 1 New rule: l0 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 1 Applied preprocessing Original rule: l2 -> l3 : op1^0'=op1^post1, op2^0'=op2^post1, (-1-op1^0+op1^post1 == 0 /\ 1+op2^post1-op2^0 == 0 /\ 1-op2^0 <= 0), cost: 1 New rule: l2 -> l3 : op1^0'=1+op1^0, op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 1 Applied preprocessing Original rule: l3 -> l2 : op1^0'=op1^post2, op2^0'=op2^post2, (-op2^post2+op2^0 == 0 /\ op1^0-op1^post2 == 0), cost: 1 New rule: l3 -> l2 : TRUE, cost: 1 Applied preprocessing Original rule: l2 -> l4 : op1^0'=op1^post3, op2^0'=op2^post3, (1-op1^0+op1^post3 == 0 /\ -1-op2^0+op2^post3 == 0 /\ 1-op1^0 <= 0), cost: 1 New rule: l2 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 Applied preprocessing Original rule: l4 -> l2 : op1^0'=op1^post4, op2^0'=op2^post4, (op1^0-op1^post4 == 0 /\ 1-op2^0 <= 0 /\ 1+op2^post4-op2^0 == 0), cost: 1 New rule: l4 -> l2 : op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 1 Applied preprocessing Original rule: l4 -> l1 : op1^0'=op1^post5, op2^0'=op2^post5, (op2^0-op2^post5 == 0 /\ op1^0-op1^post5 == 0), cost: 1 New rule: l4 -> l1 : TRUE, cost: 1 Applied preprocessing Original rule: l1 -> l4 : op1^0'=op1^post6, op2^0'=op2^post6, (1-op1^0 <= 0 /\ 1-op1^0+op1^post6 == 0 /\ -1+op2^post6-op2^0 == 0), cost: 1 New rule: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 Applied preprocessing Original rule: l5 -> l0 : op1^0'=op1^post7, op2^0'=op2^post7, (op1^0-op1^post7 == 0 /\ -op2^post7+op2^0 == 0), cost: 1 New rule: l5 -> l0 : TRUE, cost: 1 Simplified rules Start location: l5 8: l0 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 1 14: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 9: l2 -> l3 : op1^0'=1+op1^0, op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 1 11: l2 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 10: l3 -> l2 : TRUE, cost: 1 12: l4 -> l2 : op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 1 13: l4 -> l1 : TRUE, cost: 1 15: l5 -> l0 : TRUE, cost: 1 Eliminating location l0 by chaining: Applied chaining First rule: l5 -> l0 : TRUE, cost: 1 Second rule: l0 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 1 New rule: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Applied deletion Removed the following rules: 8 15 Eliminating location l3 by chaining: Applied chaining First rule: l2 -> l3 : op1^0'=1+op1^0, op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 1 Second rule: l3 -> l2 : TRUE, cost: 1 New rule: l2 -> l2 : op1^0'=1+op1^0, op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 2 Applied deletion Removed the following rules: 9 10 Eliminated locations on linear paths Start location: l5 14: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 11: l2 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 17: l2 -> l2 : op1^0'=1+op1^0, op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 2 12: l4 -> l2 : op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 1 13: l4 -> l1 : TRUE, cost: 1 16: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Applied acceleration Original rule: l2 -> l2 : op1^0'=1+op1^0, op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 2 New rule: l2 -> l2 : op1^0'=op1^0+n0, op2^0'=-n0+op2^0, (n0 >= 0 /\ -n0+op2^0 >= 0), cost: 2*n0 Applied instantiation Original rule: l2 -> l2 : op1^0'=op1^0+n0, op2^0'=-n0+op2^0, (n0 >= 0 /\ -n0+op2^0 >= 0), cost: 2*n0 New rule: l2 -> l2 : op1^0'=op1^0+op2^0, op2^0'=0, (0 >= 0 /\ op2^0 >= 0), cost: 2*op2^0 Applied simplification Original rule: l2 -> l2 : op1^0'=op1^0+op2^0, op2^0'=0, (0 >= 0 /\ op2^0 >= 0), cost: 2*op2^0 New rule: l2 -> l2 : op1^0'=op1^0+op2^0, op2^0'=0, op2^0 >= 0, cost: 2*op2^0 Applied deletion Removed the following rules: 17 Accelerated simple loops Start location: l5 14: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 11: l2 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 19: l2 -> l2 : op1^0'=op1^0+op2^0, op2^0'=0, op2^0 >= 0, cost: 2*op2^0 12: l4 -> l2 : op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 1 13: l4 -> l1 : TRUE, cost: 1 16: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Applied chaining First rule: l4 -> l2 : op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 1 Second rule: l2 -> l2 : op1^0'=op1^0+op2^0, op2^0'=0, op2^0 >= 0, cost: 2*op2^0 New rule: l4 -> l2 : op1^0'=-1+op1^0+op2^0, op2^0'=0, -1+op2^0 >= 0, cost: -1+2*op2^0 Applied deletion Removed the following rules: 19 Chained accelerated rules with incoming rules Start location: l5 14: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 11: l2 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 12: l4 -> l2 : op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 1 13: l4 -> l1 : TRUE, cost: 1 20: l4 -> l2 : op1^0'=-1+op1^0+op2^0, op2^0'=0, -1+op2^0 >= 0, cost: -1+2*op2^0 16: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Eliminating location l2 by chaining: Applied chaining First rule: l4 -> l2 : op2^0'=-1+op2^0, -1+op2^0 >= 0, cost: 1 Second rule: l2 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 New rule: l4 -> l4 : op1^0'=-1+op1^0, op2^0'=op2^0, (-1+op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2 Applied chaining First rule: l4 -> l2 : op1^0'=-1+op1^0+op2^0, op2^0'=0, -1+op2^0 >= 0, cost: -1+2*op2^0 Second rule: l2 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 New rule: l4 -> l4 : op1^0'=-2+op1^0+op2^0, op2^0'=1, (-2+op1^0+op2^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op2^0 Applied deletion Removed the following rules: 11 12 20 Eliminated locations on tree-shaped paths Start location: l5 14: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 13: l4 -> l1 : TRUE, cost: 1 21: l4 -> l4 : op1^0'=-1+op1^0, op2^0'=op2^0, (-1+op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2 22: l4 -> l4 : op1^0'=-2+op1^0+op2^0, op2^0'=1, (-2+op1^0+op2^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op2^0 16: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Applied simplification Original rule: l4 -> l4 : op1^0'=-1+op1^0, op2^0'=op2^0, (-1+op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2 New rule: l4 -> l4 : op1^0'=-1+op1^0, (-1+op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2 Simplified simple loops Start location: l5 14: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 13: l4 -> l1 : TRUE, cost: 1 22: l4 -> l4 : op1^0'=-2+op1^0+op2^0, op2^0'=1, (-2+op1^0+op2^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op2^0 23: l4 -> l4 : op1^0'=-1+op1^0, (-1+op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2 16: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Applied acceleration Original rule: l4 -> l4 : op1^0'=-2+op1^0+op2^0, op2^0'=1, (-2+op1^0+op2^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op2^0 New rule: l4 -> l4 : op1^0'=op1^0-n4, op2^0'=1, (-1+n4 >= 0 /\ -1+op2^0 >= 0 /\ op1^0-n4 >= 0), cost: 2*n4 Applied instantiation Original rule: l4 -> l4 : op1^0'=op1^0-n4, op2^0'=1, (-1+n4 >= 0 /\ -1+op2^0 >= 0 /\ op1^0-n4 >= 0), cost: 2*n4 New rule: l4 -> l4 : op1^0'=0, op2^0'=1, (0 >= 0 /\ -1+op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op1^0 Applied acceleration Original rule: l4 -> l4 : op1^0'=-1+op1^0, (-1+op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2 New rule: l4 -> l4 : op1^0'=op1^0-n6, (op1^0-n6 >= 0 /\ n6 >= 0 /\ -1+op2^0 >= 0), cost: 2*n6 Applied instantiation Original rule: l4 -> l4 : op1^0'=op1^0-n6, (op1^0-n6 >= 0 /\ n6 >= 0 /\ -1+op2^0 >= 0), cost: 2*n6 New rule: l4 -> l4 : op1^0'=0, (0 >= 0 /\ op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op1^0 Applied simplification Original rule: l4 -> l4 : op1^0'=0, op2^0'=1, (0 >= 0 /\ -1+op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op1^0 New rule: l4 -> l4 : op1^0'=0, op2^0'=1, (-1+op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op1^0 Applied simplification Original rule: l4 -> l4 : op1^0'=0, (0 >= 0 /\ op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op1^0 New rule: l4 -> l4 : op1^0'=0, (op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op1^0 Applied deletion Removed the following rules: 22 23 Accelerated simple loops Start location: l5 14: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 13: l4 -> l1 : TRUE, cost: 1 26: l4 -> l4 : op1^0'=0, op2^0'=1, (-1+op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op1^0 27: l4 -> l4 : op1^0'=0, (op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op1^0 16: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Applied chaining First rule: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 Second rule: l4 -> l4 : op1^0'=0, op2^0'=1, (-1+op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op1^0 New rule: l1 -> l4 : op1^0'=0, op2^0'=1, (op2^0 >= 0 /\ -2+op1^0 >= 0), cost: -1+2*op1^0 Applied chaining First rule: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 Second rule: l4 -> l4 : op1^0'=0, (op1^0 >= 0 /\ -1+op2^0 >= 0), cost: 2*op1^0 New rule: l1 -> l4 : op1^0'=0, op2^0'=1+op2^0, (-1+op1^0 >= 0 /\ op2^0 >= 0), cost: -1+2*op1^0 Applied deletion Removed the following rules: 26 27 Chained accelerated rules with incoming rules Start location: l5 14: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 28: l1 -> l4 : op1^0'=0, op2^0'=1, (op2^0 >= 0 /\ -2+op1^0 >= 0), cost: -1+2*op1^0 29: l1 -> l4 : op1^0'=0, op2^0'=1+op2^0, (-1+op1^0 >= 0 /\ op2^0 >= 0), cost: -1+2*op1^0 13: l4 -> l1 : TRUE, cost: 1 16: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Eliminating location l4 by chaining: Applied chaining First rule: l1 -> l4 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 1 Second rule: l4 -> l1 : TRUE, cost: 1 New rule: l1 -> l1 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 2 Applied chaining First rule: l1 -> l4 : op1^0'=0, op2^0'=1, (op2^0 >= 0 /\ -2+op1^0 >= 0), cost: -1+2*op1^0 Second rule: l4 -> l1 : TRUE, cost: 1 New rule: l1 -> l1 : op1^0'=0, op2^0'=1, (op2^0 >= 0 /\ -2+op1^0 >= 0), cost: 2*op1^0 Applied chaining First rule: l1 -> l4 : op1^0'=0, op2^0'=1+op2^0, (-1+op1^0 >= 0 /\ op2^0 >= 0), cost: -1+2*op1^0 Second rule: l4 -> l1 : TRUE, cost: 1 New rule: l1 -> l1 : op1^0'=0, op2^0'=1+op2^0, (-1+op1^0 >= 0 /\ op2^0 >= 0), cost: 2*op1^0 Applied deletion Removed the following rules: 13 14 28 29 Eliminated locations on tree-shaped paths Start location: l5 30: l1 -> l1 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 2 31: l1 -> l1 : op1^0'=0, op2^0'=1, (op2^0 >= 0 /\ -2+op1^0 >= 0), cost: 2*op1^0 32: l1 -> l1 : op1^0'=0, op2^0'=1+op2^0, (-1+op1^0 >= 0 /\ op2^0 >= 0), cost: 2*op1^0 16: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Applied acceleration Original rule: l1 -> l1 : op1^0'=-1+op1^0, op2^0'=1+op2^0, -1+op1^0 >= 0, cost: 2 New rule: l1 -> l1 : op1^0'=op1^0-n18, op2^0'=n18+op2^0, (n18 >= 0 /\ op1^0-n18 >= 0), cost: 2*n18 Applied instantiation Original rule: l1 -> l1 : op1^0'=op1^0-n18, op2^0'=n18+op2^0, (n18 >= 0 /\ op1^0-n18 >= 0), cost: 2*n18 New rule: l1 -> l1 : op1^0'=0, op2^0'=op1^0+op2^0, (0 >= 0 /\ op1^0 >= 0), cost: 2*op1^0 Applied simplification Original rule: l1 -> l1 : op1^0'=0, op2^0'=op1^0+op2^0, (0 >= 0 /\ op1^0 >= 0), cost: 2*op1^0 New rule: l1 -> l1 : op1^0'=0, op2^0'=op1^0+op2^0, op1^0 >= 0, cost: 2*op1^0 Applied deletion Removed the following rules: 30 Accelerated simple loops Start location: l5 31: l1 -> l1 : op1^0'=0, op2^0'=1, (op2^0 >= 0 /\ -2+op1^0 >= 0), cost: 2*op1^0 32: l1 -> l1 : op1^0'=0, op2^0'=1+op2^0, (-1+op1^0 >= 0 /\ op2^0 >= 0), cost: 2*op1^0 34: l1 -> l1 : op1^0'=0, op2^0'=op1^0+op2^0, op1^0 >= 0, cost: 2*op1^0 16: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Applied chaining First rule: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Second rule: l1 -> l1 : op1^0'=0, op2^0'=1, (op2^0 >= 0 /\ -2+op1^0 >= 0), cost: 2*op1^0 New rule: l5 -> l1 : op1^0'=0, op2^0'=1, (op2^0 == 0 /\ -2+op1^0 >= 0), cost: 2+2*op1^0 Applied chaining First rule: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Second rule: l1 -> l1 : op1^0'=0, op2^0'=1+op2^0, (-1+op1^0 >= 0 /\ op2^0 >= 0), cost: 2*op1^0 New rule: l5 -> l1 : op1^0'=0, op2^0'=1+op2^0, (-1+op1^0 >= 0 /\ op2^0 == 0), cost: 2+2*op1^0 Applied chaining First rule: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 Second rule: l1 -> l1 : op1^0'=0, op2^0'=op1^0+op2^0, op1^0 >= 0, cost: 2*op1^0 New rule: l5 -> l1 : op1^0'=0, op2^0'=op1^0+op2^0, (op1^0 >= 0 /\ op2^0 == 0), cost: 2+2*op1^0 Applied deletion Removed the following rules: 31 32 34 Chained accelerated rules with incoming rules Start location: l5 16: l5 -> l1 : (op1^0 >= 0 /\ op2^0 == 0), cost: 2 35: l5 -> l1 : op1^0'=0, op2^0'=1, (op2^0 == 0 /\ -2+op1^0 >= 0), cost: 2+2*op1^0 36: l5 -> l1 : op1^0'=0, op2^0'=1+op2^0, (-1+op1^0 >= 0 /\ op2^0 == 0), cost: 2+2*op1^0 37: l5 -> l1 : op1^0'=0, op2^0'=op1^0+op2^0, (op1^0 >= 0 /\ op2^0 == 0), cost: 2+2*op1^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