NO Initial ITS Start location: l10 Program variables: i5^0 length4^0 s^0 tmp^0 tmp___08^0 0: l0 -> l1 : i5^0'=i5^post1, length4^0'=length4^post1, s^0'=s^post1, tmp^0'=tmp^post1, tmp___08^0'=tmp___08^post1, (tmp___08^0-tmp___08^post1 == 0 /\ length4^0-i5^0 <= 0 /\ -tmp^post1+tmp^0 == 0 /\ -i5^post1+i5^0 == 0 /\ -s^post1+s^0 == 0 /\ -length4^post1+length4^0 == 0), cost: 1 1: l0 -> l2 : i5^0'=i5^post2, length4^0'=length4^post2, s^0'=s^post2, tmp^0'=tmp^post2, tmp___08^0'=tmp___08^post2, (0 == 0 /\ tmp^0-tmp^post2 == 0 /\ -length4^post2+length4^0 == 0 /\ 1-length4^0+i5^0 <= 0 /\ -s^post2+s^0 == 0 /\ -1+i5^post2-i5^0 == 0), cost: 1 7: l1 -> l7 : i5^0'=i5^post8, length4^0'=length4^post8, s^0'=s^post8, tmp^0'=tmp^post8, tmp___08^0'=tmp___08^post8, (-length4^post8+length4^0 == 0 /\ i5^0-i5^post8 == 0 /\ -s^post8+s^0 == 0 /\ tmp___08^0-tmp___08^post8 == 0 /\ tmp^0-tmp^post8 == 0), cost: 1 2: l2 -> l0 : i5^0'=i5^post3, length4^0'=length4^post3, s^0'=s^post3, tmp^0'=tmp^post3, tmp___08^0'=tmp___08^post3, (-length4^post3+length4^0 == 0 /\ -s^post3+s^0 == 0 /\ -i5^post3+i5^0 == 0 /\ -tmp^post3+tmp^0 == 0 /\ tmp___08^0-tmp___08^post3 == 0), cost: 1 3: l3 -> l4 : i5^0'=i5^post4, length4^0'=length4^post4, s^0'=s^post4, tmp^0'=tmp^post4, tmp___08^0'=tmp___08^post4, (tmp___08^0-tmp___08^post4 == 0 /\ tmp^0-tmp^post4 == 0 /\ -s^post4+s^0 == 0 /\ -i5^post4+i5^0 == 0 /\ -length4^post4+length4^0 == 0), cost: 1 12: l4 -> l5 : i5^0'=i5^post13, length4^0'=length4^post13, s^0'=s^post13, tmp^0'=tmp^post13, tmp___08^0'=tmp___08^post13, (-length4^post13+length4^0 == 0 /\ -s^post13+s^0 == 0 /\ tmp___08^0-tmp___08^post13 == 0 /\ tmp^0-tmp^post13 == 0 /\ -i5^post13+i5^0 == 0), cost: 1 4: l5 -> l3 : i5^0'=i5^post5, length4^0'=length4^post5, s^0'=s^post5, tmp^0'=tmp^post5, tmp___08^0'=tmp___08^post5, (tmp___08^0-tmp___08^post5 == 0 /\ -length4^post5+length4^0 == 0 /\ -s^post5+s^0 == 0 /\ -tmp^post5+tmp^0 == 0 /\ -i5^post5+i5^0 == 0), cost: 1 5: l5 -> l6 : i5^0'=i5^post6, length4^0'=length4^post6, s^0'=s^post6, tmp^0'=tmp^post6, tmp___08^0'=tmp___08^post6, (tmp^0-tmp^post6 == 0 /\ -length4^post6+length4^0 == 0 /\ -tmp___08^post6+tmp___08^0 == 0 /\ -s^post6+s^0 == 0 /\ -i5^post6+i5^0 == 0), cost: 1 6: l5 -> l3 : i5^0'=i5^post7, length4^0'=length4^post7, s^0'=s^post7, tmp^0'=tmp^post7, tmp___08^0'=tmp___08^post7, (s^0-s^post7 == 0 /\ -tmp^post7+tmp^0 == 0 /\ -i5^post7+i5^0 == 0 /\ tmp___08^0-tmp___08^post7 == 0 /\ -length4^post7+length4^0 == 0), cost: 1 9: l7 -> l8 : i5^0'=i5^post10, length4^0'=length4^post10, s^0'=s^post10, tmp^0'=tmp^post10, tmp___08^0'=tmp___08^post10, (-s^post10+s^0 == 0 /\ -tmp^post10+tmp^0 == 0 /\ tmp___08^0-tmp___08^post10 == 0 /\ -i5^post10+i5^0 == 0 /\ -length4^post10+length4^0 == 0), cost: 1 10: l7 -> l8 : i5^0'=i5^post11, length4^0'=length4^post11, s^0'=s^post11, tmp^0'=tmp^post11, tmp___08^0'=tmp___08^post11, (-i5^post11+i5^0 == 0 /\ -length4^post11+length4^0 == 0 /\ tmp___08^0-tmp___08^post11 == 0 /\ -s^post11+s^0 == 0 /\ tmp^0-tmp^post11 == 0), cost: 1 11: l7 -> l4 : i5^0'=i5^post12, length4^0'=length4^post12, s^0'=s^post12, tmp^0'=tmp^post12, tmp___08^0'=tmp___08^post12, (length4^0-length4^post12 == 0 /\ -s^post12+s^0 == 0 /\ tmp___08^0-tmp___08^post12 == 0 /\ -i5^post12+i5^0 == 0 /\ -tmp^post12+tmp^0 == 0), cost: 1 8: l8 -> l1 : i5^0'=i5^post9, length4^0'=length4^post9, s^0'=s^post9, tmp^0'=tmp^post9, tmp___08^0'=tmp___08^post9, (-s^post9+s^0 == 0 /\ tmp___08^0-tmp___08^post9 == 0 /\ length4^0-length4^post9 == 0 /\ -tmp^post9+tmp^0 == 0 /\ -i5^post9+i5^0 == 0), cost: 1 13: l9 -> l2 : i5^0'=i5^post14, length4^0'=length4^post14, s^0'=s^post14, tmp^0'=tmp^post14, tmp___08^0'=tmp___08^post14, (0 == 0 /\ tmp___08^0-tmp___08^post14 == 0 /\ s^post14-tmp^post14 == 0 /\ i5^post14 == 0 /\ length4^post14-s^post14 == 0), cost: 1 14: l10 -> l9 : i5^0'=i5^post15, length4^0'=length4^post15, s^0'=s^post15, tmp^0'=tmp^post15, tmp___08^0'=tmp___08^post15, (tmp___08^0-tmp___08^post15 == 0 /\ -length4^post15+length4^0 == 0 /\ -s^post15+s^0 == 0 /\ -tmp^post15+tmp^0 == 0 /\ -i5^post15+i5^0 == 0), cost: 1 Chained Linear Paths Start location: l10 Program variables: i5^0 length4^0 s^0 tmp^0 tmp___08^0 0: l0 -> l1 : i5^0'=i5^post1, length4^0'=length4^post1, s^0'=s^post1, tmp^0'=tmp^post1, tmp___08^0'=tmp___08^post1, (tmp___08^0-tmp___08^post1 == 0 /\ length4^0-i5^0 <= 0 /\ -tmp^post1+tmp^0 == 0 /\ -i5^post1+i5^0 == 0 /\ -s^post1+s^0 == 0 /\ -length4^post1+length4^0 == 0), cost: 1 1: l0 -> l2 : i5^0'=i5^post2, length4^0'=length4^post2, s^0'=s^post2, tmp^0'=tmp^post2, tmp___08^0'=tmp___08^post2, (0 == 0 /\ tmp^0-tmp^post2 == 0 /\ -length4^post2+length4^0 == 0 /\ 1-length4^0+i5^0 <= 0 /\ -s^post2+s^0 == 0 /\ -1+i5^post2-i5^0 == 0), cost: 1 7: l1 -> l7 : i5^0'=i5^post8, length4^0'=length4^post8, s^0'=s^post8, tmp^0'=tmp^post8, tmp___08^0'=tmp___08^post8, (-length4^post8+length4^0 == 0 /\ i5^0-i5^post8 == 0 /\ -s^post8+s^0 == 0 /\ tmp___08^0-tmp___08^post8 == 0 /\ tmp^0-tmp^post8 == 0), cost: 1 2: l2 -> l0 : i5^0'=i5^post3, length4^0'=length4^post3, s^0'=s^post3, tmp^0'=tmp^post3, tmp___08^0'=tmp___08^post3, (-length4^post3+length4^0 == 0 /\ -s^post3+s^0 == 0 /\ -i5^post3+i5^0 == 0 /\ -tmp^post3+tmp^0 == 0 /\ tmp___08^0-tmp___08^post3 == 0), cost: 1 3: l3 -> l4 : i5^0'=i5^post4, length4^0'=length4^post4, s^0'=s^post4, tmp^0'=tmp^post4, tmp___08^0'=tmp___08^post4, (tmp___08^0-tmp___08^post4 == 0 /\ tmp^0-tmp^post4 == 0 /\ -s^post4+s^0 == 0 /\ -i5^post4+i5^0 == 0 /\ -length4^post4+length4^0 == 0), cost: 1 12: l4 -> l5 : i5^0'=i5^post13, length4^0'=length4^post13, s^0'=s^post13, tmp^0'=tmp^post13, tmp___08^0'=tmp___08^post13, (-length4^post13+length4^0 == 0 /\ -s^post13+s^0 == 0 /\ tmp___08^0-tmp___08^post13 == 0 /\ tmp^0-tmp^post13 == 0 /\ -i5^post13+i5^0 == 0), cost: 1 4: l5 -> l3 : i5^0'=i5^post5, length4^0'=length4^post5, s^0'=s^post5, tmp^0'=tmp^post5, tmp___08^0'=tmp___08^post5, (tmp___08^0-tmp___08^post5 == 0 /\ -length4^post5+length4^0 == 0 /\ -s^post5+s^0 == 0 /\ -tmp^post5+tmp^0 == 0 /\ -i5^post5+i5^0 == 0), cost: 1 5: l5 -> l6 : i5^0'=i5^post6, length4^0'=length4^post6, s^0'=s^post6, tmp^0'=tmp^post6, tmp___08^0'=tmp___08^post6, (tmp^0-tmp^post6 == 0 /\ -length4^post6+length4^0 == 0 /\ -tmp___08^post6+tmp___08^0 == 0 /\ -s^post6+s^0 == 0 /\ -i5^post6+i5^0 == 0), cost: 1 6: l5 -> l3 : i5^0'=i5^post7, length4^0'=length4^post7, s^0'=s^post7, tmp^0'=tmp^post7, tmp___08^0'=tmp___08^post7, (s^0-s^post7 == 0 /\ -tmp^post7+tmp^0 == 0 /\ -i5^post7+i5^0 == 0 /\ tmp___08^0-tmp___08^post7 == 0 /\ -length4^post7+length4^0 == 0), cost: 1 9: l7 -> l8 : i5^0'=i5^post10, length4^0'=length4^post10, s^0'=s^post10, tmp^0'=tmp^post10, tmp___08^0'=tmp___08^post10, (-s^post10+s^0 == 0 /\ -tmp^post10+tmp^0 == 0 /\ tmp___08^0-tmp___08^post10 == 0 /\ -i5^post10+i5^0 == 0 /\ -length4^post10+length4^0 == 0), cost: 1 10: l7 -> l8 : i5^0'=i5^post11, length4^0'=length4^post11, s^0'=s^post11, tmp^0'=tmp^post11, tmp___08^0'=tmp___08^post11, (-i5^post11+i5^0 == 0 /\ -length4^post11+length4^0 == 0 /\ tmp___08^0-tmp___08^post11 == 0 /\ -s^post11+s^0 == 0 /\ tmp^0-tmp^post11 == 0), cost: 1 11: l7 -> l4 : i5^0'=i5^post12, length4^0'=length4^post12, s^0'=s^post12, tmp^0'=tmp^post12, tmp___08^0'=tmp___08^post12, (length4^0-length4^post12 == 0 /\ -s^post12+s^0 == 0 /\ tmp___08^0-tmp___08^post12 == 0 /\ -i5^post12+i5^0 == 0 /\ -tmp^post12+tmp^0 == 0), cost: 1 8: l8 -> l1 : i5^0'=i5^post9, length4^0'=length4^post9, s^0'=s^post9, tmp^0'=tmp^post9, tmp___08^0'=tmp___08^post9, (-s^post9+s^0 == 0 /\ tmp___08^0-tmp___08^post9 == 0 /\ length4^0-length4^post9 == 0 /\ -tmp^post9+tmp^0 == 0 /\ -i5^post9+i5^0 == 0), cost: 1 15: l10 -> l2 : i5^0'=i5^post14, length4^0'=length4^post14, s^0'=s^post14, tmp^0'=tmp^post14, tmp___08^0'=tmp___08^post14, (0 == 0 /\ tmp___08^0-tmp___08^post15 == 0 /\ -length4^post15+length4^0 == 0 /\ -s^post15+s^0 == 0 /\ s^post14-tmp^post14 == 0 /\ tmp___08^post15-tmp___08^post14 == 0 /\ -tmp^post15+tmp^0 == 0 /\ i5^post14 == 0 /\ -i5^post15+i5^0 == 0 /\ length4^post14-s^post14 == 0), cost: 1 Eliminating location l9 by chaining: Applied chaining First rule: l10 -> l9 : i5^0'=i5^post15, length4^0'=length4^post15, s^0'=s^post15, tmp^0'=tmp^post15, tmp___08^0'=tmp___08^post15, (tmp___08^0-tmp___08^post15 == 0 /\ -length4^post15+length4^0 == 0 /\ -s^post15+s^0 == 0 /\ -tmp^post15+tmp^0 == 0 /\ -i5^post15+i5^0 == 0), cost: 1 Second rule: l9 -> l2 : i5^0'=i5^post14, length4^0'=length4^post14, s^0'=s^post14, tmp^0'=tmp^post14, tmp___08^0'=tmp___08^post14, (0 == 0 /\ tmp___08^0-tmp___08^post14 == 0 /\ s^post14-tmp^post14 == 0 /\ i5^post14 == 0 /\ length4^post14-s^post14 == 0), cost: 1 New rule: l10 -> l2 : i5^0'=i5^post14, length4^0'=length4^post14, s^0'=s^post14, tmp^0'=tmp^post14, tmp___08^0'=tmp___08^post14, (0 == 0 /\ tmp___08^0-tmp___08^post15 == 0 /\ -length4^post15+length4^0 == 0 /\ -s^post15+s^0 == 0 /\ s^post14-tmp^post14 == 0 /\ tmp___08^post15-tmp___08^post14 == 0 /\ -tmp^post15+tmp^0 == 0 /\ i5^post14 == 0 /\ -i5^post15+i5^0 == 0 /\ length4^post14-s^post14 == 0), cost: 1 Applied deletion Removed the following rules: 13 14 Simplified Transitions Start location: l10 Program variables: i5^0 length4^0 s^0 tmp^0 tmp___08^0 16: l0 -> l1 : length4^0-i5^0 <= 0, cost: 1 17: l0 -> l2 : i5^0'=1+i5^0, tmp___08^0'=tmp___08^post2, 1-length4^0+i5^0 <= 0, cost: 1 23: l1 -> l7 : T, cost: 1 18: l2 -> l0 : T, cost: 1 19: l3 -> l4 : T, cost: 1 28: l4 -> l5 : T, cost: 1 20: l5 -> l3 : T, cost: 1 21: l5 -> l6 : T, cost: 1 22: l5 -> l3 : T, cost: 1 25: l7 -> l8 : T, cost: 1 26: l7 -> l8 : T, cost: 1 27: l7 -> l4 : T, cost: 1 24: l8 -> l1 : T, cost: 1 29: l10 -> l2 : i5^0'=0, length4^0'=tmp^post14, s^0'=tmp^post14, tmp^0'=tmp^post14, T, cost: 1 Propagated Equalities Original rule: l0 -> l1 : i5^0'=i5^post1, length4^0'=length4^post1, s^0'=s^post1, tmp^0'=tmp^post1, tmp___08^0'=tmp___08^post1, (tmp___08^0-tmp___08^post1 == 0 /\ length4^0-i5^0 <= 0 /\ -tmp^post1+tmp^0 == 0 /\ -i5^post1+i5^0 == 0 /\ -s^post1+s^0 == 0 /\ -length4^post1+length4^0 == 0), cost: 1 New rule: l0 -> l1 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, (0 == 0 /\ length4^0-i5^0 <= 0), cost: 1 propagated equality tmp___08^post1 = tmp___08^0 propagated equality tmp^post1 = tmp^0 propagated equality i5^post1 = i5^0 propagated equality s^post1 = s^0 propagated equality length4^post1 = length4^0 Simplified Guard Original rule: l0 -> l1 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, (0 == 0 /\ length4^0-i5^0 <= 0), cost: 1 New rule: l0 -> l1 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, length4^0-i5^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l0 -> l1 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, length4^0-i5^0 <= 0, cost: 1 New rule: l0 -> l1 : length4^0-i5^0 <= 0, cost: 1 Propagated Equalities Original rule: l0 -> l2 : i5^0'=i5^post2, length4^0'=length4^post2, s^0'=s^post2, tmp^0'=tmp^post2, tmp___08^0'=tmp___08^post2, (0 == 0 /\ tmp^0-tmp^post2 == 0 /\ -length4^post2+length4^0 == 0 /\ 1-length4^0+i5^0 <= 0 /\ -s^post2+s^0 == 0 /\ -1+i5^post2-i5^0 == 0), cost: 1 New rule: l0 -> l2 : i5^0'=1+i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^post2, (0 == 0 /\ 1-length4^0+i5^0 <= 0), cost: 1 propagated equality tmp^post2 = tmp^0 propagated equality length4^post2 = length4^0 propagated equality s^post2 = s^0 propagated equality i5^post2 = 1+i5^0 Simplified Guard Original rule: l0 -> l2 : i5^0'=1+i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^post2, (0 == 0 /\ 1-length4^0+i5^0 <= 0), cost: 1 New rule: l0 -> l2 : i5^0'=1+i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^post2, 1-length4^0+i5^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l0 -> l2 : i5^0'=1+i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^post2, 1-length4^0+i5^0 <= 0, cost: 1 New rule: l0 -> l2 : i5^0'=1+i5^0, tmp___08^0'=tmp___08^post2, 1-length4^0+i5^0 <= 0, cost: 1 Propagated Equalities Original rule: l2 -> l0 : i5^0'=i5^post3, length4^0'=length4^post3, s^0'=s^post3, tmp^0'=tmp^post3, tmp___08^0'=tmp___08^post3, (-length4^post3+length4^0 == 0 /\ -s^post3+s^0 == 0 /\ -i5^post3+i5^0 == 0 /\ -tmp^post3+tmp^0 == 0 /\ tmp___08^0-tmp___08^post3 == 0), cost: 1 New rule: l2 -> l0 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality length4^post3 = length4^0 propagated equality s^post3 = s^0 propagated equality i5^post3 = i5^0 propagated equality tmp^post3 = tmp^0 propagated equality tmp___08^post3 = tmp___08^0 Simplified Guard Original rule: l2 -> l0 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l2 -> l0 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l2 -> l0 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l2 -> l0 : T, cost: 1 Propagated Equalities Original rule: l3 -> l4 : i5^0'=i5^post4, length4^0'=length4^post4, s^0'=s^post4, tmp^0'=tmp^post4, tmp___08^0'=tmp___08^post4, (tmp___08^0-tmp___08^post4 == 0 /\ tmp^0-tmp^post4 == 0 /\ -s^post4+s^0 == 0 /\ -i5^post4+i5^0 == 0 /\ -length4^post4+length4^0 == 0), cost: 1 New rule: l3 -> l4 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality tmp___08^post4 = tmp___08^0 propagated equality tmp^post4 = tmp^0 propagated equality s^post4 = s^0 propagated equality i5^post4 = i5^0 propagated equality length4^post4 = length4^0 Simplified Guard Original rule: l3 -> l4 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l3 -> l4 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l3 -> l4 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l3 -> l4 : T, cost: 1 Propagated Equalities Original rule: l5 -> l3 : i5^0'=i5^post5, length4^0'=length4^post5, s^0'=s^post5, tmp^0'=tmp^post5, tmp___08^0'=tmp___08^post5, (tmp___08^0-tmp___08^post5 == 0 /\ -length4^post5+length4^0 == 0 /\ -s^post5+s^0 == 0 /\ -tmp^post5+tmp^0 == 0 /\ -i5^post5+i5^0 == 0), cost: 1 New rule: l5 -> l3 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality tmp___08^post5 = tmp___08^0 propagated equality length4^post5 = length4^0 propagated equality s^post5 = s^0 propagated equality tmp^post5 = tmp^0 propagated equality i5^post5 = i5^0 Simplified Guard Original rule: l5 -> l3 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l5 -> l3 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l5 -> l3 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l5 -> l3 : T, cost: 1 Propagated Equalities Original rule: l5 -> l6 : i5^0'=i5^post6, length4^0'=length4^post6, s^0'=s^post6, tmp^0'=tmp^post6, tmp___08^0'=tmp___08^post6, (tmp^0-tmp^post6 == 0 /\ -length4^post6+length4^0 == 0 /\ -tmp___08^post6+tmp___08^0 == 0 /\ -s^post6+s^0 == 0 /\ -i5^post6+i5^0 == 0), cost: 1 New rule: l5 -> l6 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality tmp^post6 = tmp^0 propagated equality length4^post6 = length4^0 propagated equality tmp___08^post6 = tmp___08^0 propagated equality s^post6 = s^0 propagated equality i5^post6 = i5^0 Simplified Guard Original rule: l5 -> l6 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l5 -> l6 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l5 -> l6 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l5 -> l6 : T, cost: 1 Propagated Equalities Original rule: l5 -> l3 : i5^0'=i5^post7, length4^0'=length4^post7, s^0'=s^post7, tmp^0'=tmp^post7, tmp___08^0'=tmp___08^post7, (s^0-s^post7 == 0 /\ -tmp^post7+tmp^0 == 0 /\ -i5^post7+i5^0 == 0 /\ tmp___08^0-tmp___08^post7 == 0 /\ -length4^post7+length4^0 == 0), cost: 1 New rule: l5 -> l3 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality s^post7 = s^0 propagated equality tmp^post7 = tmp^0 propagated equality i5^post7 = i5^0 propagated equality tmp___08^post7 = tmp___08^0 propagated equality length4^post7 = length4^0 Simplified Guard Original rule: l5 -> l3 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l5 -> l3 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l5 -> l3 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l5 -> l3 : T, cost: 1 Propagated Equalities Original rule: l1 -> l7 : i5^0'=i5^post8, length4^0'=length4^post8, s^0'=s^post8, tmp^0'=tmp^post8, tmp___08^0'=tmp___08^post8, (-length4^post8+length4^0 == 0 /\ i5^0-i5^post8 == 0 /\ -s^post8+s^0 == 0 /\ tmp___08^0-tmp___08^post8 == 0 /\ tmp^0-tmp^post8 == 0), cost: 1 New rule: l1 -> l7 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality length4^post8 = length4^0 propagated equality i5^post8 = i5^0 propagated equality s^post8 = s^0 propagated equality tmp___08^post8 = tmp___08^0 propagated equality tmp^post8 = tmp^0 Simplified Guard Original rule: l1 -> l7 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l1 -> l7 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l1 -> l7 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l1 -> l7 : T, cost: 1 Propagated Equalities Original rule: l8 -> l1 : i5^0'=i5^post9, length4^0'=length4^post9, s^0'=s^post9, tmp^0'=tmp^post9, tmp___08^0'=tmp___08^post9, (-s^post9+s^0 == 0 /\ tmp___08^0-tmp___08^post9 == 0 /\ length4^0-length4^post9 == 0 /\ -tmp^post9+tmp^0 == 0 /\ -i5^post9+i5^0 == 0), cost: 1 New rule: l8 -> l1 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality s^post9 = s^0 propagated equality tmp___08^post9 = tmp___08^0 propagated equality length4^post9 = length4^0 propagated equality tmp^post9 = tmp^0 propagated equality i5^post9 = i5^0 Simplified Guard Original rule: l8 -> l1 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l8 -> l1 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l8 -> l1 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l8 -> l1 : T, cost: 1 Propagated Equalities Original rule: l7 -> l8 : i5^0'=i5^post10, length4^0'=length4^post10, s^0'=s^post10, tmp^0'=tmp^post10, tmp___08^0'=tmp___08^post10, (-s^post10+s^0 == 0 /\ -tmp^post10+tmp^0 == 0 /\ tmp___08^0-tmp___08^post10 == 0 /\ -i5^post10+i5^0 == 0 /\ -length4^post10+length4^0 == 0), cost: 1 New rule: l7 -> l8 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality s^post10 = s^0 propagated equality tmp^post10 = tmp^0 propagated equality tmp___08^post10 = tmp___08^0 propagated equality i5^post10 = i5^0 propagated equality length4^post10 = length4^0 Simplified Guard Original rule: l7 -> l8 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l7 -> l8 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l7 -> l8 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l7 -> l8 : T, cost: 1 Propagated Equalities Original rule: l7 -> l8 : i5^0'=i5^post11, length4^0'=length4^post11, s^0'=s^post11, tmp^0'=tmp^post11, tmp___08^0'=tmp___08^post11, (-i5^post11+i5^0 == 0 /\ -length4^post11+length4^0 == 0 /\ tmp___08^0-tmp___08^post11 == 0 /\ -s^post11+s^0 == 0 /\ tmp^0-tmp^post11 == 0), cost: 1 New rule: l7 -> l8 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality i5^post11 = i5^0 propagated equality length4^post11 = length4^0 propagated equality tmp___08^post11 = tmp___08^0 propagated equality s^post11 = s^0 propagated equality tmp^post11 = tmp^0 Simplified Guard Original rule: l7 -> l8 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l7 -> l8 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l7 -> l8 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l7 -> l8 : T, cost: 1 Propagated Equalities Original rule: l7 -> l4 : i5^0'=i5^post12, length4^0'=length4^post12, s^0'=s^post12, tmp^0'=tmp^post12, tmp___08^0'=tmp___08^post12, (length4^0-length4^post12 == 0 /\ -s^post12+s^0 == 0 /\ tmp___08^0-tmp___08^post12 == 0 /\ -i5^post12+i5^0 == 0 /\ -tmp^post12+tmp^0 == 0), cost: 1 New rule: l7 -> l4 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality length4^post12 = length4^0 propagated equality s^post12 = s^0 propagated equality tmp___08^post12 = tmp___08^0 propagated equality i5^post12 = i5^0 propagated equality tmp^post12 = tmp^0 Simplified Guard Original rule: l7 -> l4 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l7 -> l4 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l7 -> l4 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l7 -> l4 : T, cost: 1 Propagated Equalities Original rule: l4 -> l5 : i5^0'=i5^post13, length4^0'=length4^post13, s^0'=s^post13, tmp^0'=tmp^post13, tmp___08^0'=tmp___08^post13, (-length4^post13+length4^0 == 0 /\ -s^post13+s^0 == 0 /\ tmp___08^0-tmp___08^post13 == 0 /\ tmp^0-tmp^post13 == 0 /\ -i5^post13+i5^0 == 0), cost: 1 New rule: l4 -> l5 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality length4^post13 = length4^0 propagated equality s^post13 = s^0 propagated equality tmp___08^post13 = tmp___08^0 propagated equality tmp^post13 = tmp^0 propagated equality i5^post13 = i5^0 Simplified Guard Original rule: l4 -> l5 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l4 -> l5 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l4 -> l5 : i5^0'=i5^0, length4^0'=length4^0, s^0'=s^0, tmp^0'=tmp^0, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l4 -> l5 : T, cost: 1 Propagated Equalities Original rule: l10 -> l2 : i5^0'=i5^post14, length4^0'=length4^post14, s^0'=s^post14, tmp^0'=tmp^post14, tmp___08^0'=tmp___08^post14, (0 == 0 /\ tmp___08^0-tmp___08^post15 == 0 /\ -length4^post15+length4^0 == 0 /\ -s^post15+s^0 == 0 /\ s^post14-tmp^post14 == 0 /\ tmp___08^post15-tmp___08^post14 == 0 /\ -tmp^post15+tmp^0 == 0 /\ i5^post14 == 0 /\ -i5^post15+i5^0 == 0 /\ length4^post14-s^post14 == 0), cost: 1 New rule: l10 -> l2 : i5^0'=0, length4^0'=tmp^post14, s^0'=tmp^post14, tmp^0'=tmp^post14, tmp___08^0'=tmp___08^post15, (0 == 0 /\ tmp___08^0-tmp___08^post15 == 0 /\ -length4^post15+length4^0 == 0 /\ -s^post15+s^0 == 0 /\ -tmp^post15+tmp^0 == 0 /\ -i5^post15+i5^0 == 0), cost: 1 propagated equality s^post14 = tmp^post14 propagated equality tmp___08^post14 = tmp___08^post15 propagated equality i5^post14 = 0 propagated equality length4^post14 = tmp^post14 Propagated Equalities Original rule: l10 -> l2 : i5^0'=0, length4^0'=tmp^post14, s^0'=tmp^post14, tmp^0'=tmp^post14, tmp___08^0'=tmp___08^post15, (0 == 0 /\ tmp___08^0-tmp___08^post15 == 0 /\ -length4^post15+length4^0 == 0 /\ -s^post15+s^0 == 0 /\ -tmp^post15+tmp^0 == 0 /\ -i5^post15+i5^0 == 0), cost: 1 New rule: l10 -> l2 : i5^0'=0, length4^0'=tmp^post14, s^0'=tmp^post14, tmp^0'=tmp^post14, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 propagated equality tmp___08^post15 = tmp___08^0 propagated equality length4^post15 = length4^0 propagated equality s^post15 = s^0 propagated equality tmp^post15 = tmp^0 propagated equality i5^post15 = i5^0 Simplified Guard Original rule: l10 -> l2 : i5^0'=0, length4^0'=tmp^post14, s^0'=tmp^post14, tmp^0'=tmp^post14, tmp___08^0'=tmp___08^0, 0 == 0, cost: 1 New rule: l10 -> l2 : i5^0'=0, length4^0'=tmp^post14, s^0'=tmp^post14, tmp^0'=tmp^post14, tmp___08^0'=tmp___08^0, T, cost: 1 Removed Trivial Updates Original rule: l10 -> l2 : i5^0'=0, length4^0'=tmp^post14, s^0'=tmp^post14, tmp^0'=tmp^post14, tmp___08^0'=tmp___08^0, T, cost: 1 New rule: l10 -> l2 : i5^0'=0, length4^0'=tmp^post14, s^0'=tmp^post14, tmp^0'=tmp^post14, T, cost: 1 Step with 29 Trace 29[T] Blocked [{}, {}] Step with 18 Trace 29[T], 18[T] Blocked [{}, {}, {}] Step with 16 Trace 29[T], 18[T], 16[(length4^0-i5^0 <= 0)] Blocked [{}, {}, {}, {}] Step with 23 Trace 29[T], 18[T], 16[(length4^0-i5^0 <= 0)], 23[T] Blocked [{}, {}, {}, {}, {}] Step with 27 Trace 29[T], 18[T], 16[(length4^0-i5^0 <= 0)], 23[T], 27[T] Blocked [{}, {}, {}, {}, {}, {}] Step with 28 Trace 29[T], 18[T], 16[(length4^0-i5^0 <= 0)], 23[T], 27[T], 28[T] Blocked [{}, {}, {}, {}, {}, {}, {}] Step with 21 Trace 29[T], 18[T], 16[(length4^0-i5^0 <= 0)], 23[T], 27[T], 28[T], 21[T] Blocked [{}, {}, {}, {}, {}, {}, {}, {}] Backtrack Trace 29[T], 18[T], 16[(length4^0-i5^0 <= 0)], 23[T], 27[T], 28[T] Blocked [{}, {}, {}, {}, {}, {}, {21[T]}] Step with 20 Trace 29[T], 18[T], 16[(length4^0-i5^0 <= 0)], 23[T], 27[T], 28[T], 20[T] Blocked [{}, {}, {}, {}, {}, {}, {21[T]}, {}] Step with 19 Trace 29[T], 18[T], 16[(length4^0-i5^0 <= 0)], 23[T], 27[T], 28[T], 20[T], 19[T] Blocked [{}, {}, {}, {}, {}, {}, {21[T]}, {}, {}] Nonterm Start location: l10 Program variables: i5^0 length4^0 s^0 tmp^0 tmp___08^0 16: l0 -> l1 : length4^0-i5^0 <= 0, cost: 1 17: l0 -> l2 : i5^0'=1+i5^0, tmp___08^0'=tmp___08^post2, 1-length4^0+i5^0 <= 0, cost: 1 23: l1 -> l7 : T, cost: 1 18: l2 -> l0 : T, cost: 1 19: l3 -> l4 : T, cost: 1 28: l4 -> l5 : T, cost: 1 30: l4 -> LoAT_sink : -1+n >= 0, cost: NONTERM 20: l5 -> l3 : T, cost: 1 21: l5 -> l6 : T, cost: 1 22: l5 -> l3 : T, cost: 1 25: l7 -> l8 : T, cost: 1 26: l7 -> l8 : T, cost: 1 27: l7 -> l4 : T, cost: 1 24: l8 -> l1 : T, cost: 1 29: l10 -> l2 : i5^0'=0, length4^0'=tmp^post14, s^0'=tmp^post14, tmp^0'=tmp^post14, T, cost: 1 Certificate of Non-Termination Original rule: l4 -> l4 : T, cost: 1 New rule: l4 -> LoAT_sink : -1+n >= 0, cost: NONTERM Replacement map: {} Step with 30 Trace 29[T], 18[T], 16[(length4^0-i5^0 <= 0)], 23[T], 27[T], 30[-1+n >= 0] Blocked [{}, {}, {}, {}, {}, {}, {30[T]}] Refute Counterexample [ i5^0=0 length4^0=0 s^0=0 tmp^0=0 tmp___08^0=0 ] 29 [ i5^0=0 length4^0=0 s^0=0 tmp^0=0 tmp___08^0=0 ] 18 [ i5^0=0 length4^0=0 s^0=0 tmp^0=0 tmp___08^0=0 ] 16 [ i5^0=0 length4^0=0 s^0=0 tmp^0=0 tmp___08^0=0 ] 23 [ i5^0=0 length4^0=0 s^0=0 tmp^0=0 tmp___08^0=0 ] 27 [ i5^0=i5^0 length4^0=length4^0 s^0=s^0 tmp^0=tmp^0 tmp___08^0=0 ] 30 NO Build SHA: a05f16bf13df659c382799650051f91bf6828c7b