NO Initial ITS Start location: l5 0: l0 -> l1 : nd^0'=nd^post0, x^0'=x^post0, p^0'=p^post0, (nd^0 <= 0 /\ nd^0-nd^post0 == 0 /\ x^0-x^post0 == 0 /\ -2+p^post0 == 0), cost: 1 1: l0 -> l1 : nd^0'=nd^post1, x^0'=x^post1, p^0'=p^post1, (1-nd^0 <= 0 /\ x^0-x^post1 == 0 /\ nd^0-nd^post1 == 0 /\ -1+p^post1 == 0), cost: 1 2: l1 -> l0 : nd^0'=nd^post2, x^0'=x^post2, p^0'=p^post2, (0 == 0 /\ x^0-x^post2 == 0 /\ p^0-p^post2 == 0), cost: 1 3: l2 -> l3 : nd^0'=nd^post3, x^0'=x^post3, p^0'=p^post3, (nd^0 <= 0 /\ p^0-p^post3 == 0 /\ 2-x^0+x^post3 == 0 /\ nd^0-nd^post3 == 0), cost: 1 4: l2 -> l3 : nd^0'=nd^post4, x^0'=x^post4, p^0'=p^post4, (1-nd^0 <= 0 /\ 1-x^0+x^post4 == 0 /\ p^0-p^post4 == 0 /\ nd^0-nd^post4 == 0), cost: 1 5: l3 -> l1 : nd^0'=nd^post5, x^0'=x^post5, p^0'=p^post5, (x^0 <= 0 /\ nd^0-nd^post5 == 0 /\ x^0-x^post5 == 0 /\ p^0-p^post5 == 0), cost: 1 6: l3 -> l2 : nd^0'=nd^post6, x^0'=x^post6, p^0'=p^post6, (0 == 0 /\ p^0-p^post6 == 0 /\ 1-x^0 <= 0 /\ x^0-x^post6 == 0), cost: 1 7: l4 -> l3 : nd^0'=nd^post7, x^0'=x^post7, p^0'=p^post7, (p^post7 == 0 /\ x^0-x^post7 == 0 /\ nd^0-nd^post7 == 0), cost: 1 8: l5 -> l4 : nd^0'=nd^post8, x^0'=x^post8, p^0'=p^post8, (nd^0-nd^post8 == 0 /\ x^0-x^post8 == 0 /\ p^0-p^post8 == 0), cost: 1 Applied preprocessing Original rule: l0 -> l1 : nd^0'=nd^post0, x^0'=x^post0, p^0'=p^post0, (nd^0 <= 0 /\ nd^0-nd^post0 == 0 /\ x^0-x^post0 == 0 /\ -2+p^post0 == 0), cost: 1 New rule: l0 -> l1 : p^0'=2, nd^0 <= 0, cost: 1 Applied preprocessing Original rule: l0 -> l1 : nd^0'=nd^post1, x^0'=x^post1, p^0'=p^post1, (1-nd^0 <= 0 /\ x^0-x^post1 == 0 /\ nd^0-nd^post1 == 0 /\ -1+p^post1 == 0), cost: 1 New rule: l0 -> l1 : p^0'=1, -1+nd^0 >= 0, cost: 1 Applied preprocessing Original rule: l1 -> l0 : nd^0'=nd^post2, x^0'=x^post2, p^0'=p^post2, (0 == 0 /\ x^0-x^post2 == 0 /\ p^0-p^post2 == 0), cost: 1 New rule: l1 -> l0 : nd^0'=nd^post2, 0 == 0, cost: 1 Applied preprocessing Original rule: l2 -> l3 : nd^0'=nd^post3, x^0'=x^post3, p^0'=p^post3, (nd^0 <= 0 /\ p^0-p^post3 == 0 /\ 2-x^0+x^post3 == 0 /\ nd^0-nd^post3 == 0), cost: 1 New rule: l2 -> l3 : x^0'=-2+x^0, nd^0 <= 0, cost: 1 Applied preprocessing Original rule: l2 -> l3 : nd^0'=nd^post4, x^0'=x^post4, p^0'=p^post4, (1-nd^0 <= 0 /\ 1-x^0+x^post4 == 0 /\ p^0-p^post4 == 0 /\ nd^0-nd^post4 == 0), cost: 1 New rule: l2 -> l3 : x^0'=-1+x^0, -1+nd^0 >= 0, cost: 1 Applied preprocessing Original rule: l3 -> l1 : nd^0'=nd^post5, x^0'=x^post5, p^0'=p^post5, (x^0 <= 0 /\ nd^0-nd^post5 == 0 /\ x^0-x^post5 == 0 /\ p^0-p^post5 == 0), cost: 1 New rule: l3 -> l1 : x^0 <= 0, cost: 1 Applied preprocessing Original rule: l3 -> l2 : nd^0'=nd^post6, x^0'=x^post6, p^0'=p^post6, (0 == 0 /\ p^0-p^post6 == 0 /\ 1-x^0 <= 0 /\ x^0-x^post6 == 0), cost: 1 New rule: l3 -> l2 : nd^0'=nd^post6, -1+x^0 >= 0, cost: 1 Applied preprocessing Original rule: l4 -> l3 : nd^0'=nd^post7, x^0'=x^post7, p^0'=p^post7, (p^post7 == 0 /\ x^0-x^post7 == 0 /\ nd^0-nd^post7 == 0), cost: 1 New rule: l4 -> l3 : p^0'=0, TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l4 : nd^0'=nd^post8, x^0'=x^post8, p^0'=p^post8, (nd^0-nd^post8 == 0 /\ x^0-x^post8 == 0 /\ p^0-p^post8 == 0), cost: 1 New rule: l5 -> l4 : TRUE, cost: 1 Simplified rules Start location: l5 9: l0 -> l1 : p^0'=2, nd^0 <= 0, cost: 1 10: l0 -> l1 : p^0'=1, -1+nd^0 >= 0, cost: 1 11: l1 -> l0 : nd^0'=nd^post2, 0 == 0, cost: 1 12: l2 -> l3 : x^0'=-2+x^0, nd^0 <= 0, cost: 1 13: l2 -> l3 : x^0'=-1+x^0, -1+nd^0 >= 0, cost: 1 14: l3 -> l1 : x^0 <= 0, cost: 1 15: l3 -> l2 : nd^0'=nd^post6, -1+x^0 >= 0, cost: 1 16: l4 -> l3 : p^0'=0, TRUE, cost: 1 17: l5 -> l4 : TRUE, cost: 1 Eliminating location l4 by chaining: Applied chaining First rule: l5 -> l4 : TRUE, cost: 1 Second rule: l4 -> l3 : p^0'=0, TRUE, cost: 1 New rule: l5 -> l3 : p^0'=0, TRUE, cost: 2 Applied deletion Removed the following rules: 16 17 Eliminated locations on linear paths Start location: l5 9: l0 -> l1 : p^0'=2, nd^0 <= 0, cost: 1 10: l0 -> l1 : p^0'=1, -1+nd^0 >= 0, cost: 1 11: l1 -> l0 : nd^0'=nd^post2, 0 == 0, cost: 1 12: l2 -> l3 : x^0'=-2+x^0, nd^0 <= 0, cost: 1 13: l2 -> l3 : x^0'=-1+x^0, -1+nd^0 >= 0, cost: 1 14: l3 -> l1 : x^0 <= 0, cost: 1 15: l3 -> l2 : nd^0'=nd^post6, -1+x^0 >= 0, cost: 1 18: l5 -> l3 : p^0'=0, TRUE, cost: 2 Eliminating location l2 by chaining: Applied chaining First rule: l3 -> l2 : nd^0'=nd^post6, -1+x^0 >= 0, cost: 1 Second rule: l2 -> l3 : x^0'=-2+x^0, nd^0 <= 0, cost: 1 New rule: l3 -> l3 : nd^0'=nd^post6, x^0'=-2+x^0, (nd^post6 <= 0 /\ -1+x^0 >= 0), cost: 2 Applied chaining First rule: l3 -> l2 : nd^0'=nd^post6, -1+x^0 >= 0, cost: 1 Second rule: l2 -> l3 : x^0'=-1+x^0, -1+nd^0 >= 0, cost: 1 New rule: l3 -> l3 : nd^0'=nd^post6, x^0'=-1+x^0, (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2 Applied deletion Removed the following rules: 12 13 15 Eliminating location l0 by chaining: Applied chaining First rule: l1 -> l0 : nd^0'=nd^post2, 0 == 0, cost: 1 Second rule: l0 -> l1 : p^0'=2, nd^0 <= 0, cost: 1 New rule: l1 -> l1 : nd^0'=nd^post2, p^0'=2, (0 == 0 /\ nd^post2 <= 0), cost: 2 Applied simplification Original rule: l1 -> l1 : nd^0'=nd^post2, p^0'=2, (0 == 0 /\ nd^post2 <= 0), cost: 2 New rule: l1 -> l1 : nd^0'=nd^post2, p^0'=2, nd^post2 <= 0, cost: 2 Applied chaining First rule: l1 -> l0 : nd^0'=nd^post2, 0 == 0, cost: 1 Second rule: l0 -> l1 : p^0'=1, -1+nd^0 >= 0, cost: 1 New rule: l1 -> l1 : nd^0'=nd^post2, p^0'=1, (0 == 0 /\ -1+nd^post2 >= 0), cost: 2 Applied simplification Original rule: l1 -> l1 : nd^0'=nd^post2, p^0'=1, (0 == 0 /\ -1+nd^post2 >= 0), cost: 2 New rule: l1 -> l1 : nd^0'=nd^post2, p^0'=1, -1+nd^post2 >= 0, cost: 2 Applied deletion Removed the following rules: 9 10 11 Eliminated locations on tree-shaped paths Start location: l5 21: l1 -> l1 : nd^0'=nd^post2, p^0'=2, nd^post2 <= 0, cost: 2 22: l1 -> l1 : nd^0'=nd^post2, p^0'=1, -1+nd^post2 >= 0, cost: 2 14: l3 -> l1 : x^0 <= 0, cost: 1 19: l3 -> l3 : nd^0'=nd^post6, x^0'=-2+x^0, (nd^post6 <= 0 /\ -1+x^0 >= 0), cost: 2 20: l3 -> l3 : nd^0'=nd^post6, x^0'=-1+x^0, (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2 18: l5 -> l3 : p^0'=0, TRUE, cost: 2 Applied nonterm Original rule: l1 -> l1 : nd^0'=nd^post2, p^0'=2, nd^post2 <= 0, cost: 2 New rule: l1 -> [6] : -nd^post2 >= 0, cost: NONTERM Applied acceleration Original rule: l1 -> l1 : nd^0'=nd^post2, p^0'=2, nd^post2 <= 0, cost: 2 New rule: l1 -> l1 : nd^0'=nd^post2, p^0'=2, -nd^post2 >= 0, cost: 2*n1 Applied nonterm Original rule: l1 -> l1 : nd^0'=nd^post2, p^0'=1, -1+nd^post2 >= 0, cost: 2 New rule: l1 -> [6] : -1+nd^post2 >= 0, cost: NONTERM Applied acceleration Original rule: l1 -> l1 : nd^0'=nd^post2, p^0'=1, -1+nd^post2 >= 0, cost: 2 New rule: l1 -> l1 : nd^0'=nd^post2, p^0'=1, -1+nd^post2 >= 0, cost: 2*n3 Applied simplification Original rule: l1 -> [6] : -nd^post2 >= 0, cost: NONTERM New rule: l1 -> [6] : nd^post2 <= 0, cost: NONTERM Applied simplification Original rule: l1 -> l1 : nd^0'=nd^post2, p^0'=2, -nd^post2 >= 0, cost: 2*n1 New rule: l1 -> l1 : nd^0'=nd^post2, p^0'=2, nd^post2 <= 0, cost: 2*n1 Applied deletion Removed the following rules: 21 22 Applied acceleration Original rule: l3 -> l3 : nd^0'=nd^post6, x^0'=-2+x^0, (nd^post6 <= 0 /\ -1+x^0 >= 0), cost: 2 New rule: l3 -> l3 : nd^0'=nd^post6, x^0'=x^0-2*n7, (-nd^post6 >= 0 /\ 1+x^0-2*n7 >= 0 /\ -1+n7 >= 0), cost: 2*n7 Applied acceleration Original rule: l3 -> l3 : nd^0'=nd^post6, x^0'=-1+x^0, (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2 New rule: l3 -> l3 : nd^0'=nd^post6, x^0'=x^0-n9, (x^0-n9 >= 0 /\ -1+n9 >= 0 /\ -1+nd^post6 >= 0), cost: 2*n9 Applied instantiation Original rule: l3 -> l3 : nd^0'=nd^post6, x^0'=x^0-n9, (x^0-n9 >= 0 /\ -1+n9 >= 0 /\ -1+nd^post6 >= 0), cost: 2*n9 New rule: l3 -> l3 : nd^0'=nd^post6, x^0'=0, (0 >= 0 /\ -1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2*x^0 Applied simplification Original rule: l3 -> l3 : nd^0'=nd^post6, x^0'=x^0-2*n7, (-nd^post6 >= 0 /\ 1+x^0-2*n7 >= 0 /\ -1+n7 >= 0), cost: 2*n7 New rule: l3 -> l3 : nd^0'=nd^post6, x^0'=x^0-2*n7, (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ -1+n7 >= 0), cost: 2*n7 Applied simplification Original rule: l3 -> l3 : nd^0'=nd^post6, x^0'=0, (0 >= 0 /\ -1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2*x^0 New rule: l3 -> l3 : nd^0'=nd^post6, x^0'=0, (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2*x^0 Applied deletion Removed the following rules: 19 20 Accelerated simple loops Start location: l5 25: l1 -> [6] : -1+nd^post2 >= 0, cost: NONTERM 26: l1 -> l1 : nd^0'=nd^post2, p^0'=1, -1+nd^post2 >= 0, cost: 2*n3 27: l1 -> [6] : nd^post2 <= 0, cost: NONTERM 28: l1 -> l1 : nd^0'=nd^post2, p^0'=2, nd^post2 <= 0, cost: 2*n1 14: l3 -> l1 : x^0 <= 0, cost: 1 31: l3 -> l3 : nd^0'=nd^post6, x^0'=x^0-2*n7, (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ -1+n7 >= 0), cost: 2*n7 32: l3 -> l3 : nd^0'=nd^post6, x^0'=0, (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2*x^0 18: l5 -> l3 : p^0'=0, TRUE, cost: 2 Applied chaining First rule: l3 -> l1 : x^0 <= 0, cost: 1 Second rule: l1 -> [6] : -1+nd^post2 >= 0, cost: NONTERM New rule: l3 -> [6] : x^0 <= 0, cost: NONTERM Applied chaining First rule: l3 -> l1 : x^0 <= 0, cost: 1 Second rule: l1 -> l1 : nd^0'=nd^post2, p^0'=1, -1+nd^post2 >= 0, cost: 2*n3 New rule: l3 -> l1 : nd^0'=nd^post2, p^0'=1, (-1+nd^post2 >= 0 /\ x^0 <= 0), cost: 1+2*n3 Applied chaining First rule: l3 -> l1 : x^0 <= 0, cost: 1 Second rule: l1 -> [6] : nd^post2 <= 0, cost: NONTERM New rule: l3 -> [6] : x^0 <= 0, cost: NONTERM Applied chaining First rule: l3 -> l1 : x^0 <= 0, cost: 1 Second rule: l1 -> l1 : nd^0'=nd^post2, p^0'=2, nd^post2 <= 0, cost: 2*n1 New rule: l3 -> l1 : nd^0'=nd^post2, p^0'=2, (nd^post2 <= 0 /\ x^0 <= 0), cost: 1+2*n1 Applied deletion Removed the following rules: 25 26 27 28 Applied chaining First rule: l5 -> l3 : p^0'=0, TRUE, cost: 2 Second rule: l3 -> l3 : nd^0'=nd^post6, x^0'=x^0-2*n7, (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ -1+n7 >= 0), cost: 2*n7 New rule: l5 -> l3 : nd^0'=nd^post6, x^0'=x^0-2*n7, p^0'=0, (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ -1+n7 >= 0), cost: 2+2*n7 Applied chaining First rule: l5 -> l3 : p^0'=0, TRUE, cost: 2 Second rule: l3 -> l3 : nd^0'=nd^post6, x^0'=0, (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2*x^0 New rule: l5 -> l3 : nd^0'=nd^post6, x^0'=0, p^0'=0, (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2+2*x^0 Applied deletion Removed the following rules: 31 32 Chained accelerated rules with incoming rules Start location: l5 14: l3 -> l1 : x^0 <= 0, cost: 1 33: l3 -> [6] : x^0 <= 0, cost: NONTERM 34: l3 -> l1 : nd^0'=nd^post2, p^0'=1, (-1+nd^post2 >= 0 /\ x^0 <= 0), cost: 1+2*n3 35: l3 -> [6] : x^0 <= 0, cost: NONTERM 36: l3 -> l1 : nd^0'=nd^post2, p^0'=2, (nd^post2 <= 0 /\ x^0 <= 0), cost: 1+2*n1 18: l5 -> l3 : p^0'=0, TRUE, cost: 2 37: l5 -> l3 : nd^0'=nd^post6, x^0'=x^0-2*n7, p^0'=0, (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ -1+n7 >= 0), cost: 2+2*n7 38: l5 -> l3 : nd^0'=nd^post6, x^0'=0, p^0'=0, (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2+2*x^0 Removed unreachable locations and irrelevant leafs Start location: l5 33: l3 -> [6] : x^0 <= 0, cost: NONTERM 35: l3 -> [6] : x^0 <= 0, cost: NONTERM 18: l5 -> l3 : p^0'=0, TRUE, cost: 2 37: l5 -> l3 : nd^0'=nd^post6, x^0'=x^0-2*n7, p^0'=0, (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ -1+n7 >= 0), cost: 2+2*n7 38: l5 -> l3 : nd^0'=nd^post6, x^0'=0, p^0'=0, (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2+2*x^0 Eliminating location l3 by chaining: Applied chaining First rule: l5 -> l3 : p^0'=0, TRUE, cost: 2 Second rule: l3 -> [6] : x^0 <= 0, cost: NONTERM New rule: l5 -> [6] : x^0 <= 0, cost: NONTERM Applied chaining First rule: l5 -> l3 : p^0'=0, TRUE, cost: 2 Second rule: l3 -> [6] : x^0 <= 0, cost: NONTERM New rule: l5 -> [6] : x^0 <= 0, cost: NONTERM Applied chaining First rule: l5 -> l3 : nd^0'=nd^post6, x^0'=x^0-2*n7, p^0'=0, (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ -1+n7 >= 0), cost: 2+2*n7 Second rule: l3 -> [6] : x^0 <= 0, cost: NONTERM New rule: l5 -> [6] : (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ x^0-2*n7 <= 0 /\ -1+n7 >= 0), cost: NONTERM Applied chaining First rule: l5 -> l3 : nd^0'=nd^post6, x^0'=x^0-2*n7, p^0'=0, (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ -1+n7 >= 0), cost: 2+2*n7 Second rule: l3 -> [6] : x^0 <= 0, cost: NONTERM New rule: l5 -> [6] : (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ x^0-2*n7 <= 0 /\ -1+n7 >= 0), cost: NONTERM Applied chaining First rule: l5 -> l3 : nd^0'=nd^post6, x^0'=0, p^0'=0, (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2+2*x^0 Second rule: l3 -> [6] : x^0 <= 0, cost: NONTERM New rule: l5 -> [6] : (0 <= 0 /\ -1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: NONTERM Applied simplification Original rule: l5 -> [6] : (0 <= 0 /\ -1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: NONTERM New rule: l5 -> [6] : (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: NONTERM Applied chaining First rule: l5 -> l3 : nd^0'=nd^post6, x^0'=0, p^0'=0, (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: 2+2*x^0 Second rule: l3 -> [6] : x^0 <= 0, cost: NONTERM New rule: l5 -> [6] : (0 <= 0 /\ -1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: NONTERM Applied simplification Original rule: l5 -> [6] : (0 <= 0 /\ -1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: NONTERM New rule: l5 -> [6] : (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: NONTERM Applied deletion Removed the following rules: 18 33 35 37 38 Eliminated locations on tree-shaped paths Start location: l5 39: l5 -> [6] : x^0 <= 0, cost: NONTERM 40: l5 -> [6] : x^0 <= 0, cost: NONTERM 41: l5 -> [6] : (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ x^0-2*n7 <= 0 /\ -1+n7 >= 0), cost: NONTERM 42: l5 -> [6] : (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ x^0-2*n7 <= 0 /\ -1+n7 >= 0), cost: NONTERM 43: l5 -> [6] : (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: NONTERM 44: l5 -> [6] : (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: NONTERM Removed duplicate rules (ignoring updates) Start location: l5 40: l5 -> [6] : x^0 <= 0, cost: NONTERM 42: l5 -> [6] : (nd^post6 <= 0 /\ 1+x^0-2*n7 >= 0 /\ x^0-2*n7 <= 0 /\ -1+n7 >= 0), cost: NONTERM 44: l5 -> [6] : (-1+x^0 >= 0 /\ -1+nd^post6 >= 0), cost: NONTERM Computing asymptotic complexity Proved nontermination of rule 40 via SMT. Proved the following lower bound Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: x^0 <= 0