NO Initial ITS Start location: l6 0: l0 -> l1 : tmp^0'=tmp^post0, len^0'=len^post0, (-1+len^post0-len^0 == 0 /\ -tmp^post0+tmp^0 == 0), cost: 1 7: l1 -> l3 : tmp^0'=tmp^post7, len^0'=len^post7, (0 == 0 /\ len^0-len^post7 == 0), cost: 1 1: l2 -> l0 : tmp^0'=tmp^post1, len^0'=len^post1, (len^0-len^post1 == 0 /\ 5-len^0 <= 0 /\ tmp^0-tmp^post1 == 0), cost: 1 2: l2 -> l0 : tmp^0'=tmp^post2, len^0'=len^post2, (-3+len^0 <= 0 /\ len^0-len^post2 == 0 /\ tmp^0-tmp^post2 == 0), cost: 1 3: l2 -> l0 : tmp^0'=tmp^post3, len^0'=len^post3, (-4+len^0 <= 0 /\ 4-len^0 <= 0 /\ len^post3 == 0 /\ tmp^0-tmp^post3 == 0), cost: 1 4: l3 -> l4 : tmp^0'=tmp^post4, len^0'=len^post4, (tmp^0-tmp^post4 == 0 /\ tmp^0 <= 0 /\ len^0-len^post4 == 0 /\ -tmp^0 <= 0), cost: 1 5: l3 -> l2 : tmp^0'=tmp^post5, len^0'=len^post5, (tmp^0-tmp^post5 == 0 /\ 1-tmp^0 <= 0 /\ -len^post5+len^0 == 0), cost: 1 6: l3 -> l2 : tmp^0'=tmp^post6, len^0'=len^post6, (1+tmp^0 <= 0 /\ -len^post6+len^0 == 0 /\ tmp^0-tmp^post6 == 0), cost: 1 8: l5 -> l1 : tmp^0'=tmp^post8, len^0'=len^post8, (len^post8 == 0 /\ -tmp^post8+tmp^0 == 0), cost: 1 9: l6 -> l5 : tmp^0'=tmp^post9, len^0'=len^post9, (tmp^0-tmp^post9 == 0 /\ -len^post9+len^0 == 0), cost: 1 Removed unreachable rules and leafs Start location: l6 0: l0 -> l1 : tmp^0'=tmp^post0, len^0'=len^post0, (-1+len^post0-len^0 == 0 /\ -tmp^post0+tmp^0 == 0), cost: 1 7: l1 -> l3 : tmp^0'=tmp^post7, len^0'=len^post7, (0 == 0 /\ len^0-len^post7 == 0), cost: 1 1: l2 -> l0 : tmp^0'=tmp^post1, len^0'=len^post1, (len^0-len^post1 == 0 /\ 5-len^0 <= 0 /\ tmp^0-tmp^post1 == 0), cost: 1 2: l2 -> l0 : tmp^0'=tmp^post2, len^0'=len^post2, (-3+len^0 <= 0 /\ len^0-len^post2 == 0 /\ tmp^0-tmp^post2 == 0), cost: 1 3: l2 -> l0 : tmp^0'=tmp^post3, len^0'=len^post3, (-4+len^0 <= 0 /\ 4-len^0 <= 0 /\ len^post3 == 0 /\ tmp^0-tmp^post3 == 0), cost: 1 5: l3 -> l2 : tmp^0'=tmp^post5, len^0'=len^post5, (tmp^0-tmp^post5 == 0 /\ 1-tmp^0 <= 0 /\ -len^post5+len^0 == 0), cost: 1 6: l3 -> l2 : tmp^0'=tmp^post6, len^0'=len^post6, (1+tmp^0 <= 0 /\ -len^post6+len^0 == 0 /\ tmp^0-tmp^post6 == 0), cost: 1 8: l5 -> l1 : tmp^0'=tmp^post8, len^0'=len^post8, (len^post8 == 0 /\ -tmp^post8+tmp^0 == 0), cost: 1 9: l6 -> l5 : tmp^0'=tmp^post9, len^0'=len^post9, (tmp^0-tmp^post9 == 0 /\ -len^post9+len^0 == 0), cost: 1 Applied preprocessing Original rule: l0 -> l1 : tmp^0'=tmp^post0, len^0'=len^post0, (-1+len^post0-len^0 == 0 /\ -tmp^post0+tmp^0 == 0), cost: 1 New rule: l0 -> l1 : len^0'=1+len^0, TRUE, cost: 1 Applied preprocessing Original rule: l2 -> l0 : tmp^0'=tmp^post1, len^0'=len^post1, (len^0-len^post1 == 0 /\ 5-len^0 <= 0 /\ tmp^0-tmp^post1 == 0), cost: 1 New rule: l2 -> l0 : -5+len^0 >= 0, cost: 1 Applied preprocessing Original rule: l2 -> l0 : tmp^0'=tmp^post2, len^0'=len^post2, (-3+len^0 <= 0 /\ len^0-len^post2 == 0 /\ tmp^0-tmp^post2 == 0), cost: 1 New rule: l2 -> l0 : -3+len^0 <= 0, cost: 1 Applied preprocessing Original rule: l2 -> l0 : tmp^0'=tmp^post3, len^0'=len^post3, (-4+len^0 <= 0 /\ 4-len^0 <= 0 /\ len^post3 == 0 /\ tmp^0-tmp^post3 == 0), cost: 1 New rule: l2 -> l0 : len^0'=0, -4+len^0 == 0, cost: 1 Applied preprocessing Original rule: l3 -> l2 : tmp^0'=tmp^post5, len^0'=len^post5, (tmp^0-tmp^post5 == 0 /\ 1-tmp^0 <= 0 /\ -len^post5+len^0 == 0), cost: 1 New rule: l3 -> l2 : -1+tmp^0 >= 0, cost: 1 Applied preprocessing Original rule: l3 -> l2 : tmp^0'=tmp^post6, len^0'=len^post6, (1+tmp^0 <= 0 /\ -len^post6+len^0 == 0 /\ tmp^0-tmp^post6 == 0), cost: 1 New rule: l3 -> l2 : 1+tmp^0 <= 0, cost: 1 Applied preprocessing Original rule: l1 -> l3 : tmp^0'=tmp^post7, len^0'=len^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 : tmp^0'=tmp^post8, len^0'=len^post8, (len^post8 == 0 /\ -tmp^post8+tmp^0 == 0), cost: 1 New rule: l5 -> l1 : len^0'=0, TRUE, cost: 1 Applied preprocessing Original rule: l6 -> l5 : tmp^0'=tmp^post9, len^0'=len^post9, (tmp^0-tmp^post9 == 0 /\ -len^post9+len^0 == 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 Eliminating location l2 by chaining: Applied chaining First rule: l1 -> l2 : tmp^0'=tmp^post7, -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 : tmp^0'=tmp^post7, len^0'=1+len^0, (-1+tmp^post7 >= 0 /\ -5+len^0 >= 0), cost: 4 Applied chaining First rule: l1 -> l2 : tmp^0'=tmp^post7, -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 : tmp^0'=tmp^post7, len^0'=1+len^0, (-1+tmp^post7 >= 0 /\ -3+len^0 <= 0), cost: 4 Applied chaining First rule: l1 -> l2 : tmp^0'=tmp^post7, -1+tmp^post7 >= 0, cost: 2 Second rule: l2 -> l1 : len^0'=1, -4+len^0 == 0, cost: 2 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-1+tmp^post7 >= 0 /\ -4+len^0 == 0), cost: 4 Applied chaining First rule: l1 -> l2 : tmp^0'=tmp^post7, 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 : tmp^0'=tmp^post7, len^0'=1+len^0, (-5+len^0 >= 0 /\ 1+tmp^post7 <= 0), cost: 4 Applied chaining First rule: l1 -> l2 : tmp^0'=tmp^post7, 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 : tmp^0'=tmp^post7, len^0'=1+len^0, (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: 4 Applied chaining First rule: l1 -> l2 : tmp^0'=tmp^post7, 1+tmp^post7 <= 0, cost: 2 Second rule: l2 -> l1 : len^0'=1, -4+len^0 == 0, cost: 2 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-4+len^0 == 0 /\ 1+tmp^post7 <= 0), cost: 4 Applied deletion Removed the following rules: 20 21 22 23 24 Eliminated locations on tree-shaped paths Start location: l6 25: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1+len^0, (-1+tmp^post7 >= 0 /\ -5+len^0 >= 0), cost: 4 26: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1+len^0, (-1+tmp^post7 >= 0 /\ -3+len^0 <= 0), cost: 4 27: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-1+tmp^post7 >= 0 /\ -4+len^0 == 0), cost: 4 28: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1+len^0, (-5+len^0 >= 0 /\ 1+tmp^post7 <= 0), cost: 4 29: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1+len^0, (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: 4 30: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-4+len^0 == 0 /\ 1+tmp^post7 <= 0), cost: 4 19: l6 -> l1 : len^0'=0, TRUE, cost: 2 Applied nonterm Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1+len^0, (-1+tmp^post7 >= 0 /\ -5+len^0 >= 0), cost: 4 New rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -5+len^0 >= 0 /\ -1+n >= 0), cost: NONTERM Sub-proof via acceration calculus written to file:///tmp/tmpnam_NPhDJk.txt Applied acceleration Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1+len^0, (-1+tmp^post7 >= 0 /\ -3+len^0 <= 0), cost: 4 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=len^0+n0, (-1+tmp^post7 >= 0 /\ 4-len^0-n0 >= 0 /\ -1+n0 >= 0), cost: 4*n0 Sub-proof via acceration calculus written to file:///tmp/tmpnam_jNgcfF.txt Applied instantiation Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=len^0+n0, (-1+tmp^post7 >= 0 /\ 4-len^0-n0 >= 0 /\ -1+n0 >= 0), cost: 4*n0 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (0 >= 0 /\ -1+tmp^post7 >= 0 /\ 3-len^0 >= 0), cost: 16-4*len^0 Applied nonterm Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1+len^0, (-5+len^0 >= 0 /\ 1+tmp^post7 <= 0), cost: 4 New rule: l1 -> [7] : (-1+n2 >= 0 /\ -5+len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: NONTERM Sub-proof via acceration calculus written to file:///tmp/tmpnam_gffKlH.txt Applied acceleration Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1+len^0, (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: 4 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=n3+len^0, (-1+n3 >= 0 /\ 4-n3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: 4*n3 Sub-proof via acceration calculus written to file:///tmp/tmpnam_dbcian.txt Applied instantiation Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=n3+len^0, (-1+n3 >= 0 /\ 4-n3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: 4*n3 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (0 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: 16-4*len^0 Applied chaining First rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-4+len^0 == 0 /\ 1+tmp^post7 <= 0), cost: 4 Second rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (0 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: 16-4*len^0 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (-4+len^0 == 0 /\ 1+tmp^post7 <= 0), cost: 16 Applied nonterm Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (-4+len^0 == 0 /\ 1+tmp^post7 <= 0), cost: 16 New rule: l1 -> [7] : (-4+len^0 >= 0 /\ 4-len^0 >= 0 /\ -1-tmp^post7 >= 0 /\ -1+n9 >= 0), cost: NONTERM Sub-proof via acceration calculus written to file:///tmp/tmpnam_pIKOlb.txt Applied chaining First rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (0 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: 16-4*len^0 Second rule: l1 -> [7] : (-4+len^0 >= 0 /\ 4-len^0 >= 0 /\ -1-tmp^post7 >= 0 /\ -1+n9 >= 0), cost: NONTERM New rule: l1 -> [7] : (0 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0 /\ -1+n9 >= 0), cost: NONTERM Applied chaining First rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (0 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: 16-4*len^0 Second rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-4+len^0 == 0 /\ 1+tmp^post7 <= 0), cost: 4 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: 20-4*len^0 Applied nonterm Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: 20-4*len^0 New rule: l1 -> [7] : (-1+n10 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: NONTERM Sub-proof via acceration calculus written to file:///tmp/tmpnam_foaaMk.txt Applied chaining First rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-4+len^0 == 0 /\ 1+tmp^post7 <= 0), cost: 4 Second rule: l1 -> [7] : (-1+n10 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: NONTERM New rule: l1 -> [7] : (-1+n10 >= 0 /\ -4+len^0 == 0 /\ 2 >= 0 /\ 1+tmp^post7 <= 0 /\ -1-tmp^post7 >= 0), cost: NONTERM Applied chaining First rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-1+tmp^post7 >= 0 /\ -4+len^0 == 0), cost: 4 Second rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (0 >= 0 /\ -1+tmp^post7 >= 0 /\ 3-len^0 >= 0), cost: 16-4*len^0 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (-1+tmp^post7 >= 0 /\ -4+len^0 == 0), cost: 16 Applied nonterm Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (-1+tmp^post7 >= 0 /\ -4+len^0 == 0), cost: 16 New rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -4+len^0 >= 0 /\ 4-len^0 >= 0 /\ -1+n11 >= 0), cost: NONTERM Sub-proof via acceration calculus written to file:///tmp/tmpnam_fjEPoc.txt Applied chaining First rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (0 >= 0 /\ -1+tmp^post7 >= 0 /\ 3-len^0 >= 0), cost: 16-4*len^0 Second rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -4+len^0 >= 0 /\ 4-len^0 >= 0 /\ -1+n11 >= 0), cost: NONTERM New rule: l1 -> [7] : (0 >= 0 /\ -1+tmp^post7 >= 0 /\ -1+n11 >= 0 /\ 3-len^0 >= 0), cost: NONTERM Applied chaining First rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (0 >= 0 /\ -1+tmp^post7 >= 0 /\ 3-len^0 >= 0), cost: 16-4*len^0 Second rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-1+tmp^post7 >= 0 /\ -4+len^0 == 0), cost: 4 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-1+tmp^post7 >= 0 /\ -3+len^0 <= 0), cost: 20-4*len^0 Applied nonterm Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-1+tmp^post7 >= 0 /\ -3+len^0 <= 0), cost: 20-4*len^0 New rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -1+n12 >= 0 /\ 3-len^0 >= 0), cost: NONTERM Sub-proof via acceration calculus written to file:///tmp/tmpnam_igOFhP.txt Applied chaining First rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-1+tmp^post7 >= 0 /\ -4+len^0 == 0), cost: 4 Second rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -1+n12 >= 0 /\ 3-len^0 >= 0), cost: NONTERM New rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -1+n12 >= 0 /\ -4+len^0 == 0 /\ 2 >= 0), cost: NONTERM Applied simplification Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (0 >= 0 /\ -1+tmp^post7 >= 0 /\ 3-len^0 >= 0), cost: 16-4*len^0 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (-1+tmp^post7 >= 0 /\ -3+len^0 <= 0), cost: 16-4*len^0 Applied simplification Original rule: l1 -> [7] : (-1+n2 >= 0 /\ -5+len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: NONTERM New rule: l1 -> [7] : (-1+n2 >= 0 /\ -5+len^0 >= 0 /\ 1+tmp^post7 <= 0), cost: NONTERM Applied simplification Original rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (0 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: 16-4*len^0 New rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: 16-4*len^0 Applied simplification Original rule: l1 -> [7] : (-4+len^0 >= 0 /\ 4-len^0 >= 0 /\ -1-tmp^post7 >= 0 /\ -1+n9 >= 0), cost: NONTERM New rule: l1 -> [7] : (-4+len^0 <= 0 /\ -4+len^0 >= 0 /\ 1+tmp^post7 <= 0 /\ -1+n9 >= 0), cost: NONTERM Applied simplification Original rule: l1 -> [7] : (0 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0 /\ -1+n9 >= 0), cost: NONTERM New rule: l1 -> [7] : (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0 /\ -1+n9 >= 0), cost: NONTERM Applied simplification Original rule: l1 -> [7] : (-1+n10 >= 0 /\ 3-len^0 >= 0 /\ -1-tmp^post7 >= 0), cost: NONTERM New rule: l1 -> [7] : (-1+n10 >= 0 /\ -3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: NONTERM Applied simplification Original rule: l1 -> [7] : (-1+n10 >= 0 /\ -4+len^0 == 0 /\ 2 >= 0 /\ 1+tmp^post7 <= 0 /\ -1-tmp^post7 >= 0), cost: NONTERM New rule: l1 -> [7] : (-1+n10 >= 0 /\ -4+len^0 == 0 /\ 1+tmp^post7 <= 0), cost: NONTERM Applied simplification Original rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -4+len^0 >= 0 /\ 4-len^0 >= 0 /\ -1+n11 >= 0), cost: NONTERM New rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -4+len^0 <= 0 /\ -4+len^0 >= 0 /\ -1+n11 >= 0), cost: NONTERM Applied simplification Original rule: l1 -> [7] : (0 >= 0 /\ -1+tmp^post7 >= 0 /\ -1+n11 >= 0 /\ 3-len^0 >= 0), cost: NONTERM New rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -3+len^0 <= 0 /\ -1+n11 >= 0), cost: NONTERM Applied simplification Original rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -1+n12 >= 0 /\ 3-len^0 >= 0), cost: NONTERM New rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -1+n12 >= 0 /\ -3+len^0 <= 0), cost: NONTERM Applied simplification Original rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -1+n12 >= 0 /\ -4+len^0 == 0 /\ 2 >= 0), cost: NONTERM New rule: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -1+n12 >= 0 /\ -4+len^0 == 0), cost: NONTERM Applied deletion Removed the following rules: 25 26 28 29 Accelerated simple loops Start location: l6 27: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-1+tmp^post7 >= 0 /\ -4+len^0 == 0), cost: 4 30: l1 -> l1 : tmp^0'=tmp^post7, len^0'=1, (-4+len^0 == 0 /\ 1+tmp^post7 <= 0), cost: 4 31: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -5+len^0 >= 0 /\ -1+n >= 0), cost: NONTERM 43: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (-1+tmp^post7 >= 0 /\ -3+len^0 <= 0), cost: 16-4*len^0 44: l1 -> [7] : (-1+n2 >= 0 /\ -5+len^0 >= 0 /\ 1+tmp^post7 <= 0), cost: NONTERM 45: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: 16-4*len^0 46: l1 -> [7] : (-4+len^0 <= 0 /\ -4+len^0 >= 0 /\ 1+tmp^post7 <= 0 /\ -1+n9 >= 0), cost: NONTERM 47: l1 -> [7] : (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0 /\ -1+n9 >= 0), cost: NONTERM 48: l1 -> [7] : (-1+n10 >= 0 /\ -3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: NONTERM 49: l1 -> [7] : (-1+n10 >= 0 /\ -4+len^0 == 0 /\ 1+tmp^post7 <= 0), cost: NONTERM 50: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -4+len^0 <= 0 /\ -4+len^0 >= 0 /\ -1+n11 >= 0), cost: NONTERM 51: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -3+len^0 <= 0 /\ -1+n11 >= 0), cost: NONTERM 52: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -1+n12 >= 0 /\ -3+len^0 <= 0), cost: NONTERM 53: l1 -> [7] : (-1+tmp^post7 >= 0 /\ -1+n12 >= 0 /\ -4+len^0 == 0), cost: NONTERM 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 : tmp^0'=tmp^post7, len^0'=4, (-1+tmp^post7 >= 0 /\ -3+len^0 <= 0), cost: 16-4*len^0 New rule: l6 -> l1 : tmp^0'=tmp^post7, len^0'=4, -1+tmp^post7 >= 0, cost: 18 Applied chaining First rule: l6 -> l1 : len^0'=0, TRUE, cost: 2 Second rule: l1 -> l1 : tmp^0'=tmp^post7, len^0'=4, (-3+len^0 <= 0 /\ 1+tmp^post7 <= 0), cost: 16-4*len^0 New rule: l6 -> l1 : tmp^0'=tmp^post7, len^0'=4, 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 /\ -1+n9 >= 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 -> [7] : (-1+n10 >= 0 /\ -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 -> [7] : (-1+tmp^post7 >= 0 /\ -3+len^0 <= 0 /\ -1+n11 >= 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 -> [7] : (-1+tmp^post7 >= 0 /\ -1+n12 >= 0 /\ -3+len^0 <= 0), cost: NONTERM New rule: l6 -> [7] : -3 <= 0, cost: NONTERM Applied deletion Removed the following rules: 27 30 31 43 44 45 46 47 48 49 50 51 52 53 Chained accelerated rules with incoming rules Start location: l6 19: l6 -> l1 : len^0'=0, TRUE, cost: 2 54: l6 -> l1 : tmp^0'=tmp^post7, len^0'=4, -1+tmp^post7 >= 0, cost: 18 55: l6 -> l1 : tmp^0'=tmp^post7, len^0'=4, 1+tmp^post7 <= 0, cost: 18 56: l6 -> [7] : -3 <= 0, cost: NONTERM Removed unreachable locations and irrelevant leafs Start location: l6 56: l6 -> [7] : -3 <= 0, cost: NONTERM Computing asymptotic complexity Proved nontermination of rule 56 via SMT. Proved the following lower bound Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: -3 <= 0