WORST_CASE(Omega(0),?) Initial ITS Start location: l6 0: l0 -> l1 : oldX0^0'=oldX0^post0, x0^0'=x0^post0, oldX1^0'=oldX1^post0, (0 == 0 /\ -oldX1^post0+x0^post0 == 0 /\ -x0^0+oldX0^post0 == 0), cost: 1 1: l2 -> l3 : oldX0^0'=oldX0^post1, x0^0'=x0^post1, oldX1^0'=oldX1^post1, (-1-oldX0^post1+x0^post1 == 0 /\ oldX1^0-oldX1^post1 == 0 /\ -x0^0+oldX0^post1 == 0), cost: 1 2: l3 -> l0 : oldX0^0'=oldX0^post2, x0^0'=x0^post2, oldX1^0'=oldX1^post2, (oldX0^post2-x0^0 == 0 /\ -oldX0^post2+x0^post2 == 0 /\ 20-oldX0^post2 <= 0 /\ oldX1^0-oldX1^post2 == 0), cost: 1 3: l3 -> l2 : oldX0^0'=oldX0^post3, x0^0'=x0^post3, oldX1^0'=oldX1^post3, (oldX1^0-oldX1^post3 == 0 /\ -oldX0^post3+x0^post3 == 0 /\ -19+oldX0^post3 <= 0 /\ oldX0^post3-x0^0 == 0), cost: 1 4: l4 -> l3 : oldX0^0'=oldX0^post4, x0^0'=x0^post4, oldX1^0'=oldX1^post4, (x0^post4 == 0 /\ oldX0^post4-x0^0 == 0 /\ oldX1^0-oldX1^post4 == 0), cost: 1 5: l5 -> l4 : oldX0^0'=oldX0^post5, x0^0'=x0^post5, oldX1^0'=oldX1^post5, (0 == 0 /\ oldX0^post5-x0^0 == 0 /\ x0^post5-oldX1^post5 == 0), cost: 1 6: l5 -> l1 : oldX0^0'=oldX0^post6, x0^0'=x0^post6, oldX1^0'=oldX1^post6, (oldX1^0-oldX1^post6 == 0 /\ oldX0^0-oldX0^post6 == 0 /\ x0^0-x0^post6 == 0), cost: 1 7: l5 -> l0 : oldX0^0'=oldX0^post7, x0^0'=x0^post7, oldX1^0'=oldX1^post7, (x0^0-x0^post7 == 0 /\ oldX1^0-oldX1^post7 == 0 /\ oldX0^0-oldX0^post7 == 0), cost: 1 8: l5 -> l2 : oldX0^0'=oldX0^post8, x0^0'=x0^post8, oldX1^0'=oldX1^post8, (oldX0^0-oldX0^post8 == 0 /\ x0^0-x0^post8 == 0 /\ oldX1^0-oldX1^post8 == 0), cost: 1 9: l5 -> l3 : oldX0^0'=oldX0^post9, x0^0'=x0^post9, oldX1^0'=oldX1^post9, (oldX0^0-oldX0^post9 == 0 /\ x0^0-x0^post9 == 0 /\ -oldX1^post9+oldX1^0 == 0), cost: 1 10: l5 -> l4 : oldX0^0'=oldX0^post10, x0^0'=x0^post10, oldX1^0'=oldX1^post10, (-x0^post10+x0^0 == 0 /\ oldX0^0-oldX0^post10 == 0 /\ -oldX1^post10+oldX1^0 == 0), cost: 1 11: l6 -> l5 : oldX0^0'=oldX0^post11, x0^0'=x0^post11, oldX1^0'=oldX1^post11, (-x0^post11+x0^0 == 0 /\ -oldX1^post11+oldX1^0 == 0 /\ oldX0^0-oldX0^post11 == 0), cost: 1 Removed unreachable rules and leafs Start location: l6 1: l2 -> l3 : oldX0^0'=oldX0^post1, x0^0'=x0^post1, oldX1^0'=oldX1^post1, (-1-oldX0^post1+x0^post1 == 0 /\ oldX1^0-oldX1^post1 == 0 /\ -x0^0+oldX0^post1 == 0), cost: 1 3: l3 -> l2 : oldX0^0'=oldX0^post3, x0^0'=x0^post3, oldX1^0'=oldX1^post3, (oldX1^0-oldX1^post3 == 0 /\ -oldX0^post3+x0^post3 == 0 /\ -19+oldX0^post3 <= 0 /\ oldX0^post3-x0^0 == 0), cost: 1 4: l4 -> l3 : oldX0^0'=oldX0^post4, x0^0'=x0^post4, oldX1^0'=oldX1^post4, (x0^post4 == 0 /\ oldX0^post4-x0^0 == 0 /\ oldX1^0-oldX1^post4 == 0), cost: 1 5: l5 -> l4 : oldX0^0'=oldX0^post5, x0^0'=x0^post5, oldX1^0'=oldX1^post5, (0 == 0 /\ oldX0^post5-x0^0 == 0 /\ x0^post5-oldX1^post5 == 0), cost: 1 8: l5 -> l2 : oldX0^0'=oldX0^post8, x0^0'=x0^post8, oldX1^0'=oldX1^post8, (oldX0^0-oldX0^post8 == 0 /\ x0^0-x0^post8 == 0 /\ oldX1^0-oldX1^post8 == 0), cost: 1 9: l5 -> l3 : oldX0^0'=oldX0^post9, x0^0'=x0^post9, oldX1^0'=oldX1^post9, (oldX0^0-oldX0^post9 == 0 /\ x0^0-x0^post9 == 0 /\ -oldX1^post9+oldX1^0 == 0), cost: 1 10: l5 -> l4 : oldX0^0'=oldX0^post10, x0^0'=x0^post10, oldX1^0'=oldX1^post10, (-x0^post10+x0^0 == 0 /\ oldX0^0-oldX0^post10 == 0 /\ -oldX1^post10+oldX1^0 == 0), cost: 1 11: l6 -> l5 : oldX0^0'=oldX0^post11, x0^0'=x0^post11, oldX1^0'=oldX1^post11, (-x0^post11+x0^0 == 0 /\ -oldX1^post11+oldX1^0 == 0 /\ oldX0^0-oldX0^post11 == 0), cost: 1 Applied preprocessing Original rule: l2 -> l3 : oldX0^0'=oldX0^post1, x0^0'=x0^post1, oldX1^0'=oldX1^post1, (-1-oldX0^post1+x0^post1 == 0 /\ oldX1^0-oldX1^post1 == 0 /\ -x0^0+oldX0^post1 == 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 : oldX0^0'=oldX0^post3, x0^0'=x0^post3, oldX1^0'=oldX1^post3, (oldX1^0-oldX1^post3 == 0 /\ -oldX0^post3+x0^post3 == 0 /\ -19+oldX0^post3 <= 0 /\ oldX0^post3-x0^0 == 0), cost: 1 New rule: l3 -> l2 : oldX0^0'=x0^0, -19+x0^0 <= 0, cost: 1 Applied preprocessing Original rule: l4 -> l3 : oldX0^0'=oldX0^post4, x0^0'=x0^post4, oldX1^0'=oldX1^post4, (x0^post4 == 0 /\ oldX0^post4-x0^0 == 0 /\ oldX1^0-oldX1^post4 == 0), cost: 1 New rule: l4 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l4 : oldX0^0'=oldX0^post5, x0^0'=x0^post5, oldX1^0'=oldX1^post5, (0 == 0 /\ oldX0^post5-x0^0 == 0 /\ x0^post5-oldX1^post5 == 0), cost: 1 New rule: l5 -> l4 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^post5, 0 == 0, cost: 1 Applied preprocessing Original rule: l5 -> l2 : oldX0^0'=oldX0^post8, x0^0'=x0^post8, oldX1^0'=oldX1^post8, (oldX0^0-oldX0^post8 == 0 /\ x0^0-x0^post8 == 0 /\ oldX1^0-oldX1^post8 == 0), cost: 1 New rule: l5 -> l2 : TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l3 : oldX0^0'=oldX0^post9, x0^0'=x0^post9, oldX1^0'=oldX1^post9, (oldX0^0-oldX0^post9 == 0 /\ x0^0-x0^post9 == 0 /\ -oldX1^post9+oldX1^0 == 0), cost: 1 New rule: l5 -> l3 : TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l4 : oldX0^0'=oldX0^post10, x0^0'=x0^post10, oldX1^0'=oldX1^post10, (-x0^post10+x0^0 == 0 /\ oldX0^0-oldX0^post10 == 0 /\ -oldX1^post10+oldX1^0 == 0), cost: 1 New rule: l5 -> l4 : TRUE, cost: 1 Applied preprocessing Original rule: l6 -> l5 : oldX0^0'=oldX0^post11, x0^0'=x0^post11, oldX1^0'=oldX1^post11, (-x0^post11+x0^0 == 0 /\ -oldX1^post11+oldX1^0 == 0 /\ oldX0^0-oldX0^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, -19+x0^0 <= 0, cost: 1 14: l4 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 15: l5 -> l4 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^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 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^post5, 0 == 0, cost: 1 New rule: l6 -> l4 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^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, -19+x0^0 <= 0, cost: 1 14: l4 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 20: l6 -> l4 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^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 : oldX0^0'=x0^0, x0^0'=oldX1^post5, oldX1^0'=oldX1^post5, 0 == 0, cost: 2 Second rule: l4 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 1 New rule: l6 -> l3 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 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, -19+x0^0 <= 0, cost: 1 21: l6 -> l2 : TRUE, cost: 2 22: l6 -> l3 : TRUE, cost: 2 24: l6 -> l3 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 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, -19+x0^0 <= 0, cost: 2 22: l6 -> l3 : TRUE, cost: 2 24: l6 -> l3 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 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, -19+x0^0 <= 0, cost: 2 New rule: l3 -> l3 : oldX0^0'=-1+x0^0+n0, x0^0'=x0^0+n0, (20-x0^0-n0 >= 0 /\ -1+n0 >= 0), cost: 2*n0 Applied instantiation Original rule: l3 -> l3 : oldX0^0'=-1+x0^0+n0, x0^0'=x0^0+n0, (20-x0^0-n0 >= 0 /\ -1+n0 >= 0), cost: 2*n0 New rule: l3 -> l3 : oldX0^0'=19, x0^0'=20, (0 >= 0 /\ 19-x0^0 >= 0), cost: 40-2*x0^0 Applied simplification Original rule: l3 -> l3 : oldX0^0'=19, x0^0'=20, (0 >= 0 /\ 19-x0^0 >= 0), cost: 40-2*x0^0 New rule: l3 -> l3 : oldX0^0'=19, x0^0'=20, -19+x0^0 <= 0, cost: 40-2*x0^0 Applied deletion Removed the following rules: 26 Accelerated simple loops Start location: l6 29: l3 -> l3 : oldX0^0'=19, x0^0'=20, -19+x0^0 <= 0, cost: 40-2*x0^0 22: l6 -> l3 : TRUE, cost: 2 24: l6 -> l3 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 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'=19, x0^0'=20, -19+x0^0 <= 0, cost: 40-2*x0^0 New rule: l6 -> l3 : oldX0^0'=19, x0^0'=20, -19+x0^0 <= 0, cost: 42-2*x0^0 Applied chaining First rule: l6 -> l3 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 0 == 0, cost: 3 Second rule: l3 -> l3 : oldX0^0'=19, x0^0'=20, -19+x0^0 <= 0, cost: 40-2*x0^0 New rule: l6 -> l3 : oldX0^0'=19, x0^0'=20, oldX1^0'=oldX1^post5, (0 == 0 /\ -19 <= 0), cost: 43 Applied chaining First rule: l6 -> l3 : oldX0^0'=x0^0, x0^0'=0, TRUE, cost: 3 Second rule: l3 -> l3 : oldX0^0'=19, x0^0'=20, -19+x0^0 <= 0, cost: 40-2*x0^0 New rule: l6 -> l3 : oldX0^0'=19, x0^0'=20, -19 <= 0, cost: 43 Applied chaining First rule: l6 -> l3 : oldX0^0'=x0^0, x0^0'=1+x0^0, TRUE, cost: 3 Second rule: l3 -> l3 : oldX0^0'=19, x0^0'=20, -19+x0^0 <= 0, cost: 40-2*x0^0 New rule: l6 -> l3 : oldX0^0'=19, x0^0'=20, -18+x0^0 <= 0, cost: 41-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 : oldX0^0'=oldX1^post5, x0^0'=0, oldX1^0'=oldX1^post5, 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'=19, x0^0'=20, -19+x0^0 <= 0, cost: 42-2*x0^0 31: l6 -> l3 : oldX0^0'=19, x0^0'=20, oldX1^0'=oldX1^post5, (0 == 0 /\ -19 <= 0), cost: 43 32: l6 -> l3 : oldX0^0'=19, x0^0'=20, -19 <= 0, cost: 43 33: l6 -> l3 : oldX0^0'=19, x0^0'=20, -18+x0^0 <= 0, cost: 41-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