WORST_CASE(Omega(0),?) Initial ITS Start location: l8 0: l0 -> l1 : oldX0^0'=oldX0^post0, x1^0'=x1^post0, oldX2^0'=oldX2^post0, x0^0'=x0^post0, oldX1^0'=oldX1^post0, oldX3^0'=oldX3^post0, (0 == 0 /\ oldX0^post0-x0^0 == 0 /\ -oldX2^post0+x0^post0 == 0 /\ -x1^0+oldX1^post0 == 0 /\ -oldX3^post0+x1^post0 == 0), cost: 1 1: l2 -> l3 : oldX0^0'=oldX0^post1, x1^0'=x1^post1, oldX2^0'=oldX2^post1, x0^0'=x0^post1, oldX1^0'=oldX1^post1, oldX3^0'=oldX3^post1, (-x1^0+oldX1^post1 == 0 /\ -oldX3^post1+oldX3^0 == 0 /\ 1+x1^post1-oldX1^post1 == 0 /\ oldX0^post1-x0^0 == 0 /\ -oldX0^post1+x0^post1 == 0 /\ -oldX2^post1+oldX2^0 == 0), cost: 1 2: l2 -> l4 : oldX0^0'=oldX0^post2, x1^0'=x1^post2, oldX2^0'=oldX2^post2, x0^0'=x0^post2, oldX1^0'=oldX1^post2, oldX3^0'=oldX3^post2, (0 == 0 /\ oldX0^post2-x0^0 == 0 /\ oldX3^0-oldX3^post2 == 0 /\ x1^post2-oldX2^post2 == 0 /\ -x1^0+oldX1^post2 == 0 /\ x0^post2-oldX1^post2 == 0), cost: 1 3: l3 -> l0 : oldX0^0'=oldX0^post3, x1^0'=x1^post3, oldX2^0'=oldX2^post3, x0^0'=x0^post3, oldX1^0'=oldX1^post3, oldX3^0'=oldX3^post3, (x1^post3-oldX1^post3 == 0 /\ -oldX0^post3+x0^post3 == 0 /\ -oldX3^post3+oldX3^0 == 0 /\ 1+oldX1^post3 <= 0 /\ oldX2^0-oldX2^post3 == 0 /\ oldX0^post3-x0^0 == 0 /\ -x1^0+oldX1^post3 == 0), cost: 1 4: l3 -> l2 : oldX0^0'=oldX0^post4, x1^0'=x1^post4, oldX2^0'=oldX2^post4, x0^0'=x0^post4, oldX1^0'=oldX1^post4, oldX3^0'=oldX3^post4, (x0^post4-oldX0^post4 == 0 /\ oldX2^0-oldX2^post4 == 0 /\ -x1^0+oldX1^post4 == 0 /\ x1^post4-oldX1^post4 == 0 /\ -oldX3^post4+oldX3^0 == 0 /\ -x0^0+oldX0^post4 == 0 /\ -oldX1^post4 <= 0), cost: 1 6: l4 -> l5 : oldX0^0'=oldX0^post6, x1^0'=x1^post6, oldX2^0'=oldX2^post6, x0^0'=x0^post6, oldX1^0'=oldX1^post6, oldX3^0'=oldX3^post6, (0 == 0 /\ -x1^0+oldX1^post6 == 0 /\ -oldX2^post6+x1^post6 == 0 /\ -oldX3^post6+oldX3^0 == 0 /\ -oldX0^post6+x0^post6 == 0 /\ oldX0^post6-x0^0 == 0), cost: 1 5: l5 -> l3 : oldX0^0'=oldX0^post5, x1^0'=x1^post5, oldX2^0'=oldX2^post5, x0^0'=x0^post5, oldX1^0'=oldX1^post5, oldX3^0'=oldX3^post5, (-oldX0^post5+x0^post5 == 0 /\ -oldX3^post5+oldX3^0 == 0 /\ -x1^0+oldX1^post5 == 0 /\ 1+x1^post5-oldX0^post5 == 0 /\ -x0^0+oldX0^post5 == 0 /\ oldX2^0-oldX2^post5 == 0), cost: 1 7: l6 -> l7 : oldX0^0'=oldX0^post7, x1^0'=x1^post7, oldX2^0'=oldX2^post7, x0^0'=x0^post7, oldX1^0'=oldX1^post7, oldX3^0'=oldX3^post7, (0 == 0 /\ oldX0^post7-x0^0 == 0 /\ x0^post7-oldX2^post7 == 0 /\ -x1^0+oldX1^post7 == 0 /\ -oldX3^post7+x1^post7 == 0), cost: 1 8: l6 -> l7 : oldX0^0'=oldX0^post8, x1^0'=x1^post8, oldX2^0'=oldX2^post8, x0^0'=x0^post8, oldX1^0'=oldX1^post8, oldX3^0'=oldX3^post8, (oldX3^0-oldX3^post8 == 0 /\ -x0^post8+x0^0 == 0 /\ x1^0-x1^post8 == 0 /\ oldX2^0-oldX2^post8 == 0 /\ -oldX1^post8+oldX1^0 == 0 /\ oldX0^0-oldX0^post8 == 0), cost: 1 9: l6 -> l1 : oldX0^0'=oldX0^post9, x1^0'=x1^post9, oldX2^0'=oldX2^post9, x0^0'=x0^post9, oldX1^0'=oldX1^post9, oldX3^0'=oldX3^post9, (x1^0-x1^post9 == 0 /\ -x0^post9+x0^0 == 0 /\ -oldX1^post9+oldX1^0 == 0 /\ oldX2^0-oldX2^post9 == 0 /\ oldX0^0-oldX0^post9 == 0 /\ -oldX3^post9+oldX3^0 == 0), cost: 1 10: l6 -> l0 : oldX0^0'=oldX0^post10, x1^0'=x1^post10, oldX2^0'=oldX2^post10, x0^0'=x0^post10, oldX1^0'=oldX1^post10, oldX3^0'=oldX3^post10, (oldX2^0-oldX2^post10 == 0 /\ oldX0^0-oldX0^post10 == 0 /\ -oldX3^post10+oldX3^0 == 0 /\ -oldX1^post10+oldX1^0 == 0 /\ x0^0-x0^post10 == 0 /\ x1^0-x1^post10 == 0), cost: 1 11: l6 -> l2 : oldX0^0'=oldX0^post11, x1^0'=x1^post11, oldX2^0'=oldX2^post11, x0^0'=x0^post11, oldX1^0'=oldX1^post11, oldX3^0'=oldX3^post11, (x1^0-x1^post11 == 0 /\ oldX0^0-oldX0^post11 == 0 /\ oldX2^0-oldX2^post11 == 0 /\ -oldX3^post11+oldX3^0 == 0 /\ x0^0-x0^post11 == 0 /\ -oldX1^post11+oldX1^0 == 0), cost: 1 12: l6 -> l3 : oldX0^0'=oldX0^post12, x1^0'=x1^post12, oldX2^0'=oldX2^post12, x0^0'=x0^post12, oldX1^0'=oldX1^post12, oldX3^0'=oldX3^post12, (-oldX3^post12+oldX3^0 == 0 /\ oldX0^0-oldX0^post12 == 0 /\ -oldX1^post12+oldX1^0 == 0 /\ x0^0-x0^post12 == 0 /\ x1^0-x1^post12 == 0 /\ oldX2^0-oldX2^post12 == 0), cost: 1 13: l6 -> l5 : oldX0^0'=oldX0^post13, x1^0'=x1^post13, oldX2^0'=oldX2^post13, x0^0'=x0^post13, oldX1^0'=oldX1^post13, oldX3^0'=oldX3^post13, (-oldX3^post13+oldX3^0 == 0 /\ x0^0-x0^post13 == 0 /\ x1^0-x1^post13 == 0 /\ oldX2^0-oldX2^post13 == 0 /\ -oldX1^post13+oldX1^0 == 0 /\ oldX0^0-oldX0^post13 == 0), cost: 1 14: l6 -> l4 : oldX0^0'=oldX0^post14, x1^0'=x1^post14, oldX2^0'=oldX2^post14, x0^0'=x0^post14, oldX1^0'=oldX1^post14, oldX3^0'=oldX3^post14, (x1^0-x1^post14 == 0 /\ x0^0-x0^post14 == 0 /\ -oldX2^post14+oldX2^0 == 0 /\ oldX1^0-oldX1^post14 == 0 /\ oldX0^0-oldX0^post14 == 0 /\ -oldX3^post14+oldX3^0 == 0), cost: 1 15: l8 -> l6 : oldX0^0'=oldX0^post15, x1^0'=x1^post15, oldX2^0'=oldX2^post15, x0^0'=x0^post15, oldX1^0'=oldX1^post15, oldX3^0'=oldX3^post15, (oldX1^0-oldX1^post15 == 0 /\ oldX0^0-oldX0^post15 == 0 /\ -oldX3^post15+oldX3^0 == 0 /\ -x0^post15+x0^0 == 0 /\ -oldX2^post15+oldX2^0 == 0 /\ x1^0-x1^post15 == 0), cost: 1 Removed unreachable rules and leafs Start location: l8 1: l2 -> l3 : oldX0^0'=oldX0^post1, x1^0'=x1^post1, oldX2^0'=oldX2^post1, x0^0'=x0^post1, oldX1^0'=oldX1^post1, oldX3^0'=oldX3^post1, (-x1^0+oldX1^post1 == 0 /\ -oldX3^post1+oldX3^0 == 0 /\ 1+x1^post1-oldX1^post1 == 0 /\ oldX0^post1-x0^0 == 0 /\ -oldX0^post1+x0^post1 == 0 /\ -oldX2^post1+oldX2^0 == 0), cost: 1 2: l2 -> l4 : oldX0^0'=oldX0^post2, x1^0'=x1^post2, oldX2^0'=oldX2^post2, x0^0'=x0^post2, oldX1^0'=oldX1^post2, oldX3^0'=oldX3^post2, (0 == 0 /\ oldX0^post2-x0^0 == 0 /\ oldX3^0-oldX3^post2 == 0 /\ x1^post2-oldX2^post2 == 0 /\ -x1^0+oldX1^post2 == 0 /\ x0^post2-oldX1^post2 == 0), cost: 1 4: l3 -> l2 : oldX0^0'=oldX0^post4, x1^0'=x1^post4, oldX2^0'=oldX2^post4, x0^0'=x0^post4, oldX1^0'=oldX1^post4, oldX3^0'=oldX3^post4, (x0^post4-oldX0^post4 == 0 /\ oldX2^0-oldX2^post4 == 0 /\ -x1^0+oldX1^post4 == 0 /\ x1^post4-oldX1^post4 == 0 /\ -oldX3^post4+oldX3^0 == 0 /\ -x0^0+oldX0^post4 == 0 /\ -oldX1^post4 <= 0), cost: 1 6: l4 -> l5 : oldX0^0'=oldX0^post6, x1^0'=x1^post6, oldX2^0'=oldX2^post6, x0^0'=x0^post6, oldX1^0'=oldX1^post6, oldX3^0'=oldX3^post6, (0 == 0 /\ -x1^0+oldX1^post6 == 0 /\ -oldX2^post6+x1^post6 == 0 /\ -oldX3^post6+oldX3^0 == 0 /\ -oldX0^post6+x0^post6 == 0 /\ oldX0^post6-x0^0 == 0), cost: 1 5: l5 -> l3 : oldX0^0'=oldX0^post5, x1^0'=x1^post5, oldX2^0'=oldX2^post5, x0^0'=x0^post5, oldX1^0'=oldX1^post5, oldX3^0'=oldX3^post5, (-oldX0^post5+x0^post5 == 0 /\ -oldX3^post5+oldX3^0 == 0 /\ -x1^0+oldX1^post5 == 0 /\ 1+x1^post5-oldX0^post5 == 0 /\ -x0^0+oldX0^post5 == 0 /\ oldX2^0-oldX2^post5 == 0), cost: 1 11: l6 -> l2 : oldX0^0'=oldX0^post11, x1^0'=x1^post11, oldX2^0'=oldX2^post11, x0^0'=x0^post11, oldX1^0'=oldX1^post11, oldX3^0'=oldX3^post11, (x1^0-x1^post11 == 0 /\ oldX0^0-oldX0^post11 == 0 /\ oldX2^0-oldX2^post11 == 0 /\ -oldX3^post11+oldX3^0 == 0 /\ x0^0-x0^post11 == 0 /\ -oldX1^post11+oldX1^0 == 0), cost: 1 12: l6 -> l3 : oldX0^0'=oldX0^post12, x1^0'=x1^post12, oldX2^0'=oldX2^post12, x0^0'=x0^post12, oldX1^0'=oldX1^post12, oldX3^0'=oldX3^post12, (-oldX3^post12+oldX3^0 == 0 /\ oldX0^0-oldX0^post12 == 0 /\ -oldX1^post12+oldX1^0 == 0 /\ x0^0-x0^post12 == 0 /\ x1^0-x1^post12 == 0 /\ oldX2^0-oldX2^post12 == 0), cost: 1 13: l6 -> l5 : oldX0^0'=oldX0^post13, x1^0'=x1^post13, oldX2^0'=oldX2^post13, x0^0'=x0^post13, oldX1^0'=oldX1^post13, oldX3^0'=oldX3^post13, (-oldX3^post13+oldX3^0 == 0 /\ x0^0-x0^post13 == 0 /\ x1^0-x1^post13 == 0 /\ oldX2^0-oldX2^post13 == 0 /\ -oldX1^post13+oldX1^0 == 0 /\ oldX0^0-oldX0^post13 == 0), cost: 1 14: l6 -> l4 : oldX0^0'=oldX0^post14, x1^0'=x1^post14, oldX2^0'=oldX2^post14, x0^0'=x0^post14, oldX1^0'=oldX1^post14, oldX3^0'=oldX3^post14, (x1^0-x1^post14 == 0 /\ x0^0-x0^post14 == 0 /\ -oldX2^post14+oldX2^0 == 0 /\ oldX1^0-oldX1^post14 == 0 /\ oldX0^0-oldX0^post14 == 0 /\ -oldX3^post14+oldX3^0 == 0), cost: 1 15: l8 -> l6 : oldX0^0'=oldX0^post15, x1^0'=x1^post15, oldX2^0'=oldX2^post15, x0^0'=x0^post15, oldX1^0'=oldX1^post15, oldX3^0'=oldX3^post15, (oldX1^0-oldX1^post15 == 0 /\ oldX0^0-oldX0^post15 == 0 /\ -oldX3^post15+oldX3^0 == 0 /\ -x0^post15+x0^0 == 0 /\ -oldX2^post15+oldX2^0 == 0 /\ x1^0-x1^post15 == 0), cost: 1 Applied preprocessing Original rule: l2 -> l3 : oldX0^0'=oldX0^post1, x1^0'=x1^post1, oldX2^0'=oldX2^post1, x0^0'=x0^post1, oldX1^0'=oldX1^post1, oldX3^0'=oldX3^post1, (-x1^0+oldX1^post1 == 0 /\ -oldX3^post1+oldX3^0 == 0 /\ 1+x1^post1-oldX1^post1 == 0 /\ oldX0^post1-x0^0 == 0 /\ -oldX0^post1+x0^post1 == 0 /\ -oldX2^post1+oldX2^0 == 0), cost: 1 New rule: l2 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x1^0, oldX1^0'=x1^0, TRUE, cost: 1 Applied preprocessing Original rule: l2 -> l4 : oldX0^0'=oldX0^post2, x1^0'=x1^post2, oldX2^0'=oldX2^post2, x0^0'=x0^post2, oldX1^0'=oldX1^post2, oldX3^0'=oldX3^post2, (0 == 0 /\ oldX0^post2-x0^0 == 0 /\ oldX3^0-oldX3^post2 == 0 /\ x1^post2-oldX2^post2 == 0 /\ -x1^0+oldX1^post2 == 0 /\ x0^post2-oldX1^post2 == 0), cost: 1 New rule: l2 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, 0 == 0, cost: 1 Applied preprocessing Original rule: l3 -> l2 : oldX0^0'=oldX0^post4, x1^0'=x1^post4, oldX2^0'=oldX2^post4, x0^0'=x0^post4, oldX1^0'=oldX1^post4, oldX3^0'=oldX3^post4, (x0^post4-oldX0^post4 == 0 /\ oldX2^0-oldX2^post4 == 0 /\ -x1^0+oldX1^post4 == 0 /\ x1^post4-oldX1^post4 == 0 /\ -oldX3^post4+oldX3^0 == 0 /\ -x0^0+oldX0^post4 == 0 /\ -oldX1^post4 <= 0), cost: 1 New rule: l3 -> l2 : oldX0^0'=x0^0, oldX1^0'=x1^0, x1^0 >= 0, cost: 1 Applied preprocessing Original rule: l5 -> l3 : oldX0^0'=oldX0^post5, x1^0'=x1^post5, oldX2^0'=oldX2^post5, x0^0'=x0^post5, oldX1^0'=oldX1^post5, oldX3^0'=oldX3^post5, (-oldX0^post5+x0^post5 == 0 /\ -oldX3^post5+oldX3^0 == 0 /\ -x1^0+oldX1^post5 == 0 /\ 1+x1^post5-oldX0^post5 == 0 /\ -x0^0+oldX0^post5 == 0 /\ oldX2^0-oldX2^post5 == 0), cost: 1 New rule: l5 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x0^0, oldX1^0'=x1^0, TRUE, cost: 1 Applied preprocessing Original rule: l4 -> l5 : oldX0^0'=oldX0^post6, x1^0'=x1^post6, oldX2^0'=oldX2^post6, x0^0'=x0^post6, oldX1^0'=oldX1^post6, oldX3^0'=oldX3^post6, (0 == 0 /\ -x1^0+oldX1^post6 == 0 /\ -oldX2^post6+x1^post6 == 0 /\ -oldX3^post6+oldX3^0 == 0 /\ -oldX0^post6+x0^post6 == 0 /\ oldX0^post6-x0^0 == 0), cost: 1 New rule: l4 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 1 Applied preprocessing Original rule: l6 -> l2 : oldX0^0'=oldX0^post11, x1^0'=x1^post11, oldX2^0'=oldX2^post11, x0^0'=x0^post11, oldX1^0'=oldX1^post11, oldX3^0'=oldX3^post11, (x1^0-x1^post11 == 0 /\ oldX0^0-oldX0^post11 == 0 /\ oldX2^0-oldX2^post11 == 0 /\ -oldX3^post11+oldX3^0 == 0 /\ x0^0-x0^post11 == 0 /\ -oldX1^post11+oldX1^0 == 0), cost: 1 New rule: l6 -> l2 : TRUE, cost: 1 Applied preprocessing Original rule: l6 -> l3 : oldX0^0'=oldX0^post12, x1^0'=x1^post12, oldX2^0'=oldX2^post12, x0^0'=x0^post12, oldX1^0'=oldX1^post12, oldX3^0'=oldX3^post12, (-oldX3^post12+oldX3^0 == 0 /\ oldX0^0-oldX0^post12 == 0 /\ -oldX1^post12+oldX1^0 == 0 /\ x0^0-x0^post12 == 0 /\ x1^0-x1^post12 == 0 /\ oldX2^0-oldX2^post12 == 0), cost: 1 New rule: l6 -> l3 : TRUE, cost: 1 Applied preprocessing Original rule: l6 -> l5 : oldX0^0'=oldX0^post13, x1^0'=x1^post13, oldX2^0'=oldX2^post13, x0^0'=x0^post13, oldX1^0'=oldX1^post13, oldX3^0'=oldX3^post13, (-oldX3^post13+oldX3^0 == 0 /\ x0^0-x0^post13 == 0 /\ x1^0-x1^post13 == 0 /\ oldX2^0-oldX2^post13 == 0 /\ -oldX1^post13+oldX1^0 == 0 /\ oldX0^0-oldX0^post13 == 0), cost: 1 New rule: l6 -> l5 : TRUE, cost: 1 Applied preprocessing Original rule: l6 -> l4 : oldX0^0'=oldX0^post14, x1^0'=x1^post14, oldX2^0'=oldX2^post14, x0^0'=x0^post14, oldX1^0'=oldX1^post14, oldX3^0'=oldX3^post14, (x1^0-x1^post14 == 0 /\ x0^0-x0^post14 == 0 /\ -oldX2^post14+oldX2^0 == 0 /\ oldX1^0-oldX1^post14 == 0 /\ oldX0^0-oldX0^post14 == 0 /\ -oldX3^post14+oldX3^0 == 0), cost: 1 New rule: l6 -> l4 : TRUE, cost: 1 Applied preprocessing Original rule: l8 -> l6 : oldX0^0'=oldX0^post15, x1^0'=x1^post15, oldX2^0'=oldX2^post15, x0^0'=x0^post15, oldX1^0'=oldX1^post15, oldX3^0'=oldX3^post15, (oldX1^0-oldX1^post15 == 0 /\ oldX0^0-oldX0^post15 == 0 /\ -oldX3^post15+oldX3^0 == 0 /\ -x0^post15+x0^0 == 0 /\ -oldX2^post15+oldX2^0 == 0 /\ x1^0-x1^post15 == 0), cost: 1 New rule: l8 -> l6 : TRUE, cost: 1 Simplified rules Start location: l8 16: l2 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x1^0, oldX1^0'=x1^0, TRUE, cost: 1 17: l2 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, 0 == 0, cost: 1 18: l3 -> l2 : oldX0^0'=x0^0, oldX1^0'=x1^0, x1^0 >= 0, cost: 1 20: l4 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 1 19: l5 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x0^0, oldX1^0'=x1^0, TRUE, cost: 1 21: l6 -> l2 : TRUE, cost: 1 22: l6 -> l3 : TRUE, cost: 1 23: l6 -> l5 : TRUE, cost: 1 24: l6 -> l4 : TRUE, cost: 1 25: l8 -> l6 : TRUE, cost: 1 Eliminating location l6 by chaining: Applied chaining First rule: l8 -> l6 : TRUE, cost: 1 Second rule: l6 -> l2 : TRUE, cost: 1 New rule: l8 -> l2 : TRUE, cost: 2 Applied chaining First rule: l8 -> l6 : TRUE, cost: 1 Second rule: l6 -> l3 : TRUE, cost: 1 New rule: l8 -> l3 : TRUE, cost: 2 Applied chaining First rule: l8 -> l6 : TRUE, cost: 1 Second rule: l6 -> l5 : TRUE, cost: 1 New rule: l8 -> l5 : TRUE, cost: 2 Applied chaining First rule: l8 -> l6 : TRUE, cost: 1 Second rule: l6 -> l4 : TRUE, cost: 1 New rule: l8 -> l4 : TRUE, cost: 2 Applied deletion Removed the following rules: 21 22 23 24 25 Eliminated locations on tree-shaped paths Start location: l8 16: l2 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x1^0, oldX1^0'=x1^0, TRUE, cost: 1 17: l2 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, 0 == 0, cost: 1 18: l3 -> l2 : oldX0^0'=x0^0, oldX1^0'=x1^0, x1^0 >= 0, cost: 1 20: l4 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 1 19: l5 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x0^0, oldX1^0'=x1^0, TRUE, cost: 1 26: l8 -> l2 : TRUE, cost: 2 27: l8 -> l3 : TRUE, cost: 2 28: l8 -> l5 : TRUE, cost: 2 29: l8 -> l4 : TRUE, cost: 2 Eliminated location l2 Start location: l8 30: l3 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x1^0, oldX1^0'=x1^0, x1^0 >= 0, cost: 2 31: l3 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, x1^0 >= 0, cost: 2 20: l4 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 1 19: l5 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x0^0, oldX1^0'=x1^0, TRUE, cost: 1 27: l8 -> l3 : TRUE, cost: 2 28: l8 -> l5 : TRUE, cost: 2 29: l8 -> l4 : TRUE, cost: 2 32: l8 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x1^0, oldX1^0'=x1^0, TRUE, cost: 3 33: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, 0 == 0, cost: 3 Applied acceleration Original rule: l3 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x1^0, oldX1^0'=x1^0, x1^0 >= 0, cost: 2 New rule: l3 -> l3 : oldX0^0'=x0^0, x1^0'=x1^0-n0, oldX1^0'=1+x1^0-n0, (-1+n0 >= 0 /\ 1+x1^0-n0 >= 0), cost: 2*n0 Applied instantiation Original rule: l3 -> l3 : oldX0^0'=x0^0, x1^0'=x1^0-n0, oldX1^0'=1+x1^0-n0, (-1+n0 >= 0 /\ 1+x1^0-n0 >= 0), cost: 2*n0 New rule: l3 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, (0 >= 0 /\ x1^0 >= 0), cost: 2+2*x1^0 Applied simplification Original rule: l3 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, (0 >= 0 /\ x1^0 >= 0), cost: 2+2*x1^0 New rule: l3 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, x1^0 >= 0, cost: 2+2*x1^0 Applied deletion Removed the following rules: 30 Accelerated simple loops Start location: l8 31: l3 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, x1^0 >= 0, cost: 2 35: l3 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, x1^0 >= 0, cost: 2+2*x1^0 20: l4 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 1 19: l5 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x0^0, oldX1^0'=x1^0, TRUE, cost: 1 27: l8 -> l3 : TRUE, cost: 2 28: l8 -> l5 : TRUE, cost: 2 29: l8 -> l4 : TRUE, cost: 2 32: l8 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x1^0, oldX1^0'=x1^0, TRUE, cost: 3 33: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, 0 == 0, cost: 3 Applied chaining First rule: l5 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x0^0, oldX1^0'=x1^0, TRUE, cost: 1 Second rule: l3 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, x1^0 >= 0, cost: 2+2*x1^0 New rule: l5 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, -1+x0^0 >= 0, cost: 1+2*x0^0 Applied chaining First rule: l8 -> l3 : TRUE, cost: 2 Second rule: l3 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, x1^0 >= 0, cost: 2+2*x1^0 New rule: l8 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, x1^0 >= 0, cost: 4+2*x1^0 Applied chaining First rule: l8 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x1^0, oldX1^0'=x1^0, TRUE, cost: 3 Second rule: l3 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, x1^0 >= 0, cost: 2+2*x1^0 New rule: l8 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, -1+x1^0 >= 0, cost: 3+2*x1^0 Applied deletion Removed the following rules: 35 Chained accelerated rules with incoming rules Start location: l8 31: l3 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, x1^0 >= 0, cost: 2 20: l4 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 1 19: l5 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x0^0, oldX1^0'=x1^0, TRUE, cost: 1 36: l5 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, -1+x0^0 >= 0, cost: 1+2*x0^0 27: l8 -> l3 : TRUE, cost: 2 28: l8 -> l5 : TRUE, cost: 2 29: l8 -> l4 : TRUE, cost: 2 32: l8 -> l3 : oldX0^0'=x0^0, x1^0'=-1+x1^0, oldX1^0'=x1^0, TRUE, cost: 3 33: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, 0 == 0, cost: 3 37: l8 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, x1^0 >= 0, cost: 4+2*x1^0 38: l8 -> l3 : oldX0^0'=x0^0, x1^0'=-1, oldX1^0'=0, -1+x1^0 >= 0, cost: 3+2*x1^0 Eliminated location l3 Start location: l8 20: l4 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 1 39: l5 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=-1+x0^0, oldX1^0'=-1+x0^0, -1+x0^0 >= 0, cost: 3 42: l5 -> [10] : -1+x0^0 >= 0, cost: 1+2*x0^0 28: l8 -> l5 : TRUE, cost: 2 29: l8 -> l4 : TRUE, cost: 2 33: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, 0 == 0, cost: 3 40: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, x1^0 >= 0, cost: 4 41: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=-1+x1^0, oldX1^0'=-1+x1^0, -1+x1^0 >= 0, cost: 5 43: l8 -> [10] : x1^0 >= 0, cost: 4+2*x1^0 44: l8 -> [10] : -1+x1^0 >= 0, cost: 3+2*x1^0 Applied merging first rule: l8 -> [10] : x1^0 >= 0, cost: 4+2*x1^0 second rule: l8 -> [10] : -1+x1^0 >= 0, cost: 3+2*x1^0 new rule: l8 -> [10] : x1^0 >= 0, cost: 4+2*x1^0 Merged rules Start location: l8 20: l4 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 1 39: l5 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=-1+x0^0, oldX1^0'=-1+x0^0, -1+x0^0 >= 0, cost: 3 42: l5 -> [10] : -1+x0^0 >= 0, cost: 1+2*x0^0 28: l8 -> l5 : TRUE, cost: 2 29: l8 -> l4 : TRUE, cost: 2 33: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, 0 == 0, cost: 3 40: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, x1^0 >= 0, cost: 4 41: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=-1+x1^0, oldX1^0'=-1+x1^0, -1+x1^0 >= 0, cost: 5 45: l8 -> [10] : x1^0 >= 0, cost: 4+2*x1^0 Applied pruning (of leafs and parallel rules): Start location: l8 20: l4 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 1 39: l5 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=-1+x0^0, oldX1^0'=-1+x0^0, -1+x0^0 >= 0, cost: 3 28: l8 -> l5 : TRUE, cost: 2 29: l8 -> l4 : TRUE, cost: 2 33: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, 0 == 0, cost: 3 40: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=x1^0, oldX1^0'=x1^0, x1^0 >= 0, cost: 4 41: l8 -> l4 : oldX0^0'=x0^0, x1^0'=oldX2^post2, oldX2^0'=oldX2^post2, x0^0'=-1+x1^0, oldX1^0'=-1+x1^0, -1+x1^0 >= 0, cost: 5 Eliminated location l4 Start location: l8 48: l5 -> l5 : oldX0^0'=-1+x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=-1+x0^0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 4 28: l8 -> l5 : TRUE, cost: 2 46: l8 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 3 47: l8 -> l5 : oldX0^0'=x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=x1^0, oldX1^0'=oldX2^post2, 0 == 0, cost: 4 49: l8 -> l5 : oldX0^0'=x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=x1^0, oldX1^0'=oldX2^post2, x1^0 >= 0, cost: 5 50: l8 -> l5 : oldX0^0'=-1+x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=-1+x1^0, oldX1^0'=oldX2^post2, -1+x1^0 >= 0, cost: 6 Applied acceleration Original rule: l5 -> l5 : oldX0^0'=-1+x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=-1+x0^0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 4 New rule: l5 -> l5 : oldX0^0'=x0^0-n3, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=x0^0-n3, oldX1^0'=oldX2^post2, (-1+n3 >= 0 /\ x0^0-n3 >= 0), cost: 4*n3 Applied instantiation Original rule: l5 -> l5 : oldX0^0'=x0^0-n3, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=x0^0-n3, oldX1^0'=oldX2^post2, (-1+n3 >= 0 /\ x0^0-n3 >= 0), cost: 4*n3 New rule: l5 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, (0 >= 0 /\ -1+x0^0 >= 0), cost: 4*x0^0 Applied simplification Original rule: l5 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, (0 >= 0 /\ -1+x0^0 >= 0), cost: 4*x0^0 New rule: l5 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 4*x0^0 Applied deletion Removed the following rules: 48 Accelerated simple loops Start location: l8 52: l5 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 4*x0^0 28: l8 -> l5 : TRUE, cost: 2 46: l8 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 3 47: l8 -> l5 : oldX0^0'=x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=x1^0, oldX1^0'=oldX2^post2, 0 == 0, cost: 4 49: l8 -> l5 : oldX0^0'=x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=x1^0, oldX1^0'=oldX2^post2, x1^0 >= 0, cost: 5 50: l8 -> l5 : oldX0^0'=-1+x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=-1+x1^0, oldX1^0'=oldX2^post2, -1+x1^0 >= 0, cost: 6 Applied chaining First rule: l8 -> l5 : TRUE, cost: 2 Second rule: l5 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 4*x0^0 New rule: l8 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 2+4*x0^0 Applied chaining First rule: l8 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 3 Second rule: l5 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 4*x0^0 New rule: l8 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 3+4*x0^0 Applied chaining First rule: l8 -> l5 : oldX0^0'=x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=x1^0, oldX1^0'=oldX2^post2, 0 == 0, cost: 4 Second rule: l5 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 4*x0^0 New rule: l8 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x1^0 >= 0, cost: 4+4*x1^0 Applied chaining First rule: l8 -> l5 : oldX0^0'=x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=x1^0, oldX1^0'=oldX2^post2, x1^0 >= 0, cost: 5 Second rule: l5 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 4*x0^0 New rule: l8 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x1^0 >= 0, cost: 5+4*x1^0 Applied chaining First rule: l8 -> l5 : oldX0^0'=-1+x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=-1+x1^0, oldX1^0'=oldX2^post2, -1+x1^0 >= 0, cost: 6 Second rule: l5 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 4*x0^0 New rule: l8 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -2+x1^0 >= 0, cost: 2+4*x1^0 Applied deletion Removed the following rules: 52 Chained accelerated rules with incoming rules Start location: l8 28: l8 -> l5 : TRUE, cost: 2 46: l8 -> l5 : oldX0^0'=x0^0, x1^0'=x1^post6, oldX2^0'=x1^post6, oldX1^0'=x1^0, 0 == 0, cost: 3 47: l8 -> l5 : oldX0^0'=x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=x1^0, oldX1^0'=oldX2^post2, 0 == 0, cost: 4 49: l8 -> l5 : oldX0^0'=x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=x1^0, oldX1^0'=oldX2^post2, x1^0 >= 0, cost: 5 50: l8 -> l5 : oldX0^0'=-1+x1^0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=-1+x1^0, oldX1^0'=oldX2^post2, -1+x1^0 >= 0, cost: 6 53: l8 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 2+4*x0^0 54: l8 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x0^0 >= 0, cost: 3+4*x0^0 55: l8 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x1^0 >= 0, cost: 4+4*x1^0 56: l8 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -1+x1^0 >= 0, cost: 5+4*x1^0 57: l8 -> l5 : oldX0^0'=0, x1^0'=x1^post6, oldX2^0'=x1^post6, x0^0'=0, oldX1^0'=oldX2^post2, -2+x1^0 >= 0, cost: 2+4*x1^0 Removed unreachable locations and irrelevant leafs Start location: l8 Computing asymptotic complexity Proved the following lower bound Complexity: Unknown Cpx degree: ? Solved cost: 0 Rule cost: 0