NO Initial ITS Start location: l6 0: l0 -> l1 : len^0'=len^post0, tmp^0'=tmp^post0, (tmp^0-tmp^post0 == 0 /\ -1-len^0+len^post0 == 0), cost: 1 7: l1 -> l3 : len^0'=len^post7, tmp^0'=tmp^post7, (0 == 0 /\ len^0-len^post7 == 0), cost: 1 1: l2 -> l0 : len^0'=len^post1, tmp^0'=tmp^post1, (-tmp^post1+tmp^0 == 0 /\ len^0-len^post1 == 0 /\ 5-len^0 <= 0), cost: 1 2: l2 -> l0 : len^0'=len^post2, tmp^0'=tmp^post2, (-tmp^post2+tmp^0 == 0 /\ len^0-len^post2 == 0 /\ -3+len^0 <= 0), cost: 1 3: l2 -> l0 : len^0'=len^post3, tmp^0'=tmp^post3, (len^post3 == 0 /\ tmp^0-tmp^post3 == 0 /\ -4+len^0 <= 0 /\ 4-len^0 <= 0), cost: 1 4: l3 -> l4 : len^0'=len^post4, tmp^0'=tmp^post4, (len^0-len^post4 == 0 /\ -tmp^0 <= 0 /\ -tmp^post4+tmp^0 == 0 /\ tmp^0 <= 0), cost: 1 5: l3 -> l2 : len^0'=len^post5, tmp^0'=tmp^post5, (tmp^0-tmp^post5 == 0 /\ 1-tmp^0 <= 0 /\ len^0-len^post5 == 0), cost: 1 6: l3 -> l2 : len^0'=len^post6, tmp^0'=tmp^post6, (-tmp^post6+tmp^0 == 0 /\ 1+tmp^0 <= 0 /\ len^0-len^post6 == 0), cost: 1 8: l5 -> l1 : len^0'=len^post8, tmp^0'=tmp^post8, (len^post8 == 0 /\ tmp^0-tmp^post8 == 0), cost: 1 9: l6 -> l5 : len^0'=len^post9, tmp^0'=tmp^post9, (-tmp^post9+tmp^0 == 0 /\ len^0-len^post9 == 0), cost: 1 Removed unreachable rules and leafs Start location: l6 0: l0 -> l1 : len^0'=len^post0, tmp^0'=tmp^post0, (tmp^0-tmp^post0 == 0 /\ -1-len^0+len^post0 == 0), cost: 1 7: l1 -> l3 : len^0'=len^post7, tmp^0'=tmp^post7, (0 == 0 /\ len^0-len^post7 == 0), cost: 1 1: l2 -> l0 : len^0'=len^post1, tmp^0'=tmp^post1, (-tmp^post1+tmp^0 == 0 /\ len^0-len^post1 == 0 /\ 5-len^0 <= 0), cost: 1 2: l2 -> l0 : len^0'=len^post2, tmp^0'=tmp^post2, (-tmp^post2+tmp^0 == 0 /\ len^0-len^post2 == 0 /\ -3+len^0 <= 0), cost: 1 3: l2 -> l0 : len^0'=len^post3, tmp^0'=tmp^post3, (len^post3 == 0 /\ tmp^0-tmp^post3 == 0 /\ -4+len^0 <= 0 /\ 4-len^0 <= 0), cost: 1 5: l3 -> l2 : len^0'=len^post5, tmp^0'=tmp^post5, (tmp^0-tmp^post5 == 0 /\ 1-tmp^0 <= 0 /\ len^0-len^post5 == 0), cost: 1 6: l3 -> l2 : len^0'=len^post6, tmp^0'=tmp^post6, (-tmp^post6+tmp^0 == 0 /\ 1+tmp^0 <= 0 /\ len^0-len^post6 == 0), cost: 1 8: l5 -> l1 : len^0'=len^post8, tmp^0'=tmp^post8, (len^post8 == 0 /\ tmp^0-tmp^post8 == 0), cost: 1 9: l6 -> l5 : len^0'=len^post9, tmp^0'=tmp^post9, (-tmp^post9+tmp^0 == 0 /\ len^0-len^post9 == 0), cost: 1 Applied preprocessing Original rule: l0 -> l1 : len^0'=len^post0, tmp^0'=tmp^post0, (tmp^0-tmp^post0 == 0 /\ -1-len^0+len^post0 == 0), cost: 1 New rule: l0 -> l1 : len^0'=1+len^0, TRUE, cost: 1 Applied preprocessing Original rule: l2 -> l0 : len^0'=len^post1, tmp^0'=tmp^post1, (-tmp^post1+tmp^0 == 0 /\ len^0-len^post1 == 0 /\ 5-len^0 <= 0), cost: 1 New rule: l2 -> l0 : -5+len^0 >= 0, cost: 1 Applied preprocessing Original rule: l2 -> l0 : len^0'=len^post2, tmp^0'=tmp^post2, (-tmp^post2+tmp^0 == 0 /\ len^0-len^post2 == 0 /\ -3+len^0 <= 0), cost: 1 New rule: l2 -> l0 : -3+len^0 <= 0, cost: 1 Applied preprocessing Original rule: l2 -> l0 : len^0'=len^post3, tmp^0'=tmp^post3, (len^post3 == 0 /\ tmp^0-tmp^post3 == 0 /\ -4+len^0 <= 0 /\ 4-len^0 <= 0), cost: 1 New rule: l2 -> l0 : len^0'=0, -4+len^0 == 0, cost: 1 Applied preprocessing Original rule: l3 -> l2 : len^0'=len^post5, tmp^0'=tmp^post5, (tmp^0-tmp^post5 == 0 /\ 1-tmp^0 <= 0 /\ len^0-len^post5 == 0), cost: 1 New rule: l3 -> l2 : -1+tmp^0 >= 0, cost: 1 Applied preprocessing Original rule: l3 -> l2 : len^0'=len^post6, tmp^0'=tmp^post6, (-tmp^post6+tmp^0 == 0 /\ 1+tmp^0 <= 0 /\ len^0-len^post6 == 0), cost: 1 New rule: l3 -> l2 : 1+tmp^0 <= 0, cost: 1 Applied preprocessing Original rule: l1 -> l3 : len^0'=len^post7, tmp^0'=tmp^post7, (0 == 0 /\ len^0-len^post7 == 0), cost: 1 New rule: l1 -> l3 : tmp^0'=tmp^post7, 0 == 0, cost: 1 Applied preprocessing Original rule: l5 -> l1 : len^0'=len^post8, tmp^0'=tmp^post8, (len^post8 == 0 /\ tmp^0-tmp^post8 == 0), cost: 1 New rule: l5 -> l1 : len^0'=0, TRUE, cost: 1 Applied preprocessing Original rule: l6 -> l5 : len^0'=len^post9, tmp^0'=tmp^post9, (-tmp^post9+tmp^0 == 0 /\ len^0-len^post9 == 0), cost: 1 New rule: l6 -> l5 : TRUE, cost: 1 Simplified rules Start location: l6 10: l0 -> l1 : len^0'=1+len^0, TRUE, cost: 1 16: l1 -> l3 : tmp^0'=tmp^post7, 0 == 0, cost: 1 11: l2 -> l0 : -5+len^0 >= 0, cost: 1 12: l2 -> l0 : -3+len^0 <= 0, cost: 1 13: l2 -> l0 : len^0'=0, -4+len^0 == 0, cost: 1 14: l3 -> l2 : -1+tmp^0 >= 0, cost: 1 15: l3 -> l2 : 1+tmp^0 <= 0, cost: 1 17: l5 -> l1 : len^0'=0, TRUE, cost: 1 18: l6 -> l5 : TRUE, cost: 1 Eliminating location l5 by chaining: Applied chaining First rule: l6 -> l5 : TRUE, cost: 1 Second rule: l5 -> l1 : len^0'=0, TRUE, cost: 1 New rule: l6 -> l1 : len^0'=0, TRUE, cost: 2 Applied deletion Removed the following rules: 17 18 Eliminated locations on linear paths Start location: l6 10: l0 -> l1 : len^0'=1+len^0, TRUE, cost: 1 16: l1 -> l3 : tmp^0'=tmp^post7, 0 == 0, cost: 1 11: l2 -> l0 : -5+len^0 >= 0, cost: 1 12: l2 -> l0 : -3+len^0 <= 0, cost: 1 13: l2 -> l0 : len^0'=0, -4+len^0 == 0, cost: 1 14: l3 -> l2 : -1+tmp^0 >= 0, cost: 1 15: l3 -> l2 : 1+tmp^0 <= 0, cost: 1 19: l6 -> l1 : len^0'=0, TRUE, cost: 2 Eliminating location l3 by chaining: Applied chaining First rule: l1 -> l3 : tmp^0'=tmp^post7, 0 == 0, cost: 1 Second rule: l3 -> l2 : -1+tmp^0 >= 0, cost: 1 New rule: l1 -> l2 : tmp^0'=tmp^post7, (0 == 0 /\ -1+tmp^post7 >= 0), cost: 2 Applied simplification Original rule: l1 -> l2 : tmp^0'=tmp^post7, (0 == 0 /\ -1+tmp^post7 >= 0), cost: 2 New rule: l1 -> l2 : tmp^0'=tmp^post7, -1+tmp^post7 >= 0, cost: 2 Applied chaining First rule: l1 -> l3 : tmp^0'=tmp^post7, 0 == 0, cost: 1 Second rule: l3 -> l2 : 1+tmp^0 <= 0, cost: 1 New rule: l1 -> l2 : tmp^0'=tmp^post7, (0 == 0 /\ 1+tmp^post7 <= 0), cost: 2 Applied simplification Original rule: l1 -> l2 : tmp^0'=tmp^post7, (0 == 0 /\ 1+tmp^post7 <= 0), cost: 2 New rule: l1 -> l2 : tmp^0'=tmp^post7, 1+tmp^post7 <= 0, cost: 2 Applied deletion Removed the following rules: 14 15 16 Eliminating location l0 by chaining: Applied chaining First rule: l2 -> l0 : -5+len^0 >= 0, cost: 1 Second rule: l0 -> l1 : len^0'=1+len^0, TRUE, cost: 1 New rule: l2 -> l1 : len^0'=1+len^0, -5+len^0 >= 0, cost: 2 Applied chaining First rule: l2 -> l0 : -3+len^0 <= 0, cost: 1 Second rule: l0 -> l1 : len^0'=1+len^0, TRUE, cost: 1 New rule: l2 -> l1 : len^0'=1+len^0, -3+len^0 <= 0, cost: 2 Applied chaining First rule: l2 -> l0 : len^0'=0, -4+len^0 == 0, cost: 1 Second rule: l0 -> l1 : len^0'=1+len^0, TRUE, cost: 1 New rule: l2 -> l1 : len^0'=1, -4+len^0 == 0, cost: 2 Applied deletion Removed the following rules: 10 11 12 13 Eliminated locations on tree-shaped paths Start location: l6 20: l1 -> l2 : tmp^0'=tmp^post7, -1+tmp^post7 >= 0, cost: 2 21: l1 -> l2 : tmp^0'=tmp^post7, 1+tmp^post7 <= 0, cost: 2 22: l2 -> l1 : len^0'=1+len^0, -5+len^0 >= 0, cost: 2 23: l2 -> l1 : len^0'=1+len^0, -3+len^0 <= 0, cost: 2 24: l2 -> l1 : len^0'=1, -4+len^0 == 0, cost: 2 19: l6 -> l1 : len^0'=0, TRUE, cost: 2 Applied merging first rule: l1 -> l2 : tmp^0'=tmp^post7, -1+tmp^post7 >= 0, cost: 2 second rule: l1 -> l2 : tmp^0'=tmp^post7, 1+tmp^post7 <= 0, cost: 2 new rule: l1 -> l2 : tmp^0'=tmp^post7, (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0), cost: 2 Merged rules Start location: l6 25: l1 -> l2 : tmp^0'=tmp^post7, (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0), cost: 2 22: l2 -> l1 : len^0'=1+len^0, -5+len^0 >= 0, cost: 2 23: l2 -> l1 : len^0'=1+len^0, -3+len^0 <= 0, cost: 2 24: l2 -> l1 : len^0'=1, -4+len^0 == 0, cost: 2 19: l6 -> l1 : len^0'=0, TRUE, cost: 2 Eliminating location l2 by chaining: Applied chaining First rule: l1 -> l2 : tmp^0'=tmp^post7, (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0), cost: 2 Second rule: l2 -> l1 : len^0'=1+len^0, -5+len^0 >= 0, cost: 2 New rule: l1 -> l1 : len^0'=1+len^0, tmp^0'=tmp^post7, (-5+len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 Applied chaining First rule: l1 -> l2 : tmp^0'=tmp^post7, (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0), cost: 2 Second rule: l2 -> l1 : len^0'=1+len^0, -3+len^0 <= 0, cost: 2 New rule: l1 -> l1 : len^0'=1+len^0, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 Applied chaining First rule: l1 -> l2 : tmp^0'=tmp^post7, (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0), cost: 2 Second rule: l2 -> l1 : len^0'=1, -4+len^0 == 0, cost: 2 New rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 Applied deletion Removed the following rules: 22 23 24 25 Eliminated locations on tree-shaped paths Start location: l6 26: l1 -> l1 : len^0'=1+len^0, tmp^0'=tmp^post7, (-5+len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 27: l1 -> l1 : len^0'=1+len^0, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 28: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 19: l6 -> l1 : len^0'=0, TRUE, cost: 2 Applied nonterm Original rule: l1 -> l1 : len^0'=1+len^0, tmp^0'=tmp^post7, (-5+len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 New rule: l1 -> [7] : (-1-tmp^post7 >= 0 /\ -5+len^0 >= 0), cost: NONTERM Applied acceleration Original rule: l1 -> l1 : len^0'=1+len^0, tmp^0'=tmp^post7, (-5+len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 New rule: l1 -> l1 : len^0'=len^0+n2, tmp^0'=tmp^post7, (-5+len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 4*n2 Applied acceleration Original rule: l1 -> l1 : len^0'=1+len^0, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 New rule: l1 -> l1 : len^0'=len^0+n4, tmp^0'=tmp^post7, (4-len^0-n4 >= 0 /\ -1+n4 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 4*n4 Applied instantiation Original rule: l1 -> l1 : len^0'=len^0+n4, tmp^0'=tmp^post7, (4-len^0-n4 >= 0 /\ -1+n4 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 4*n4 New rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (0 >= 0 /\ 3-len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 16-4*len^0 Applied chaining First rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 Second rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (0 >= 0 /\ 3-len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 16-4*len^0 New rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 16 Applied nonterm Original rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 16 New rule: l1 -> [7] : (-1-tmp^post7 >= 0 /\ -4+len^0 >= 0 /\ 4-len^0 >= 0), cost: NONTERM Applied acceleration Original rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 16 New rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (-4+len^0 >= 0 /\ 4-len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 16*n12 Applied chaining First rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (0 >= 0 /\ 3-len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 16-4*len^0 Second rule: l1 -> [7] : (-1-tmp^post7 >= 0 /\ -4+len^0 >= 0 /\ 4-len^0 >= 0), cost: NONTERM New rule: l1 -> [7] : (0 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: NONTERM Heuristically decided not to add the following rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (-4+len^0 >= 0 /\ 4-len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 16*n12 Applied chaining First rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (0 >= 0 /\ 3-len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 16-4*len^0 Second rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 New rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 20-4*len^0 Applied nonterm Original rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 20-4*len^0 New rule: l1 -> [7] : (3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: NONTERM Applied acceleration Original rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 20-4*len^0 New rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (3-len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 16*n14 Applied chaining First rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 Second rule: l1 -> [7] : (3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: NONTERM New rule: l1 -> [7] : (2 >= 0 /\ -1-tmp^post7 >= 0 /\ -4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: NONTERM Applied chaining First rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 Second rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (3-len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 16*n14 New rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (2 >= 0 /\ -4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0) /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4+16*n14 Applied simplification Original rule: l1 -> [7] : (-1-tmp^post7 >= 0 /\ -5+len^0 >= 0), cost: NONTERM New rule: l1 -> [7] : (1+tmp^post7 <= 0 /\ -5+len^0 >= 0), cost: NONTERM Applied simplification Original rule: l1 -> l1 : len^0'=len^0+n2, tmp^0'=tmp^post7, (-5+len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 4*n2 New rule: l1 -> l1 : len^0'=len^0+n2, tmp^0'=tmp^post7, (-5+len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4*n2 Applied simplification Original rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (0 >= 0 /\ 3-len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 16-4*len^0 New rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 16-4*len^0 Applied simplification Original rule: l1 -> [7] : (-1-tmp^post7 >= 0 /\ -4+len^0 >= 0 /\ 4-len^0 >= 0), cost: NONTERM New rule: l1 -> [7] : (1+tmp^post7 <= 0 /\ -4+len^0 <= 0 /\ -4+len^0 >= 0), cost: NONTERM Applied simplification Original rule: l1 -> [7] : (0 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: NONTERM New rule: l1 -> [7] : (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: NONTERM Applied simplification Original rule: l1 -> [7] : (3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: NONTERM New rule: l1 -> [7] : (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: NONTERM Applied simplification Original rule: l1 -> [7] : (2 >= 0 /\ -1-tmp^post7 >= 0 /\ -4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: NONTERM New rule: l1 -> [7] : (1+tmp^post7 <= 0 /\ -4+len^0 == 0), cost: NONTERM Applied simplification Original rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (3-len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0)), cost: 16*n14 New rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 16*n14 Applied simplification Original rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (2 >= 0 /\ -4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ -1-tmp^post7 >= 0) /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4+16*n14 New rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4+16*n14 Applied deletion Removed the following rules: 26 27 Applied deletion Removed the following rules: 42 Accelerated simple loops Start location: l6 28: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4 38: l1 -> [7] : (1+tmp^post7 <= 0 /\ -5+len^0 >= 0), cost: NONTERM 39: l1 -> l1 : len^0'=len^0+n2, tmp^0'=tmp^post7, (-5+len^0 >= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4*n2 40: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 16-4*len^0 41: l1 -> [7] : (1+tmp^post7 <= 0 /\ -4+len^0 <= 0 /\ -4+len^0 >= 0), cost: NONTERM 43: l1 -> [7] : (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: NONTERM 44: l1 -> [7] : (1+tmp^post7 <= 0 /\ -4+len^0 == 0), cost: NONTERM 45: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 16*n14 46: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-4+len^0 == 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 4+16*n14 19: l6 -> l1 : len^0'=0, TRUE, cost: 2 Applied chaining First rule: l6 -> l1 : len^0'=0, TRUE, cost: 2 Second rule: l1 -> l1 : len^0'=4, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 16-4*len^0 New rule: l6 -> l1 : len^0'=4, tmp^0'=tmp^post7, (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0), cost: 18 Applied chaining First rule: l6 -> l1 : len^0'=0, TRUE, cost: 2 Second rule: l1 -> [7] : (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: NONTERM New rule: l6 -> [7] : -3 <= 0, cost: NONTERM Applied chaining First rule: l6 -> l1 : len^0'=0, TRUE, cost: 2 Second rule: l1 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-3+len^0 <= 0 /\ (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0)), cost: 16*n14 New rule: l6 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0), cost: 2+16*n14 Applied deletion Removed the following rules: 28 38 39 40 41 43 44 45 46 Chained accelerated rules with incoming rules Start location: l6 19: l6 -> l1 : len^0'=0, TRUE, cost: 2 47: l6 -> l1 : len^0'=4, tmp^0'=tmp^post7, (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0), cost: 18 48: l6 -> [7] : -3 <= 0, cost: NONTERM 49: l6 -> l1 : len^0'=1, tmp^0'=tmp^post7, (-1+tmp^post7 >= 0 \/ 1+tmp^post7 <= 0), cost: 2+16*n14 Removed unreachable locations and irrelevant leafs Start location: l6 48: l6 -> [7] : -3 <= 0, cost: NONTERM Computing asymptotic complexity Proved nontermination of rule 48 via SMT. Proved the following lower bound Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: -3 <= 0