NO Initial ITS Start location: l7 Program variables: i^0 j^0 x^0 y^0 0: l0 -> l1 : i^0'=i^post1, j^0'=j^post1, x^0'=x^post1, y^0'=y^post1, (-i^post1+i^0 == 0 /\ 1+y^post1-y^0 == 0 /\ 1+x^post1-x^0 == 0 /\ j^0-j^post1 == 0), cost: 1 4: l1 -> l2 : i^0'=i^post5, j^0'=j^post5, x^0'=x^post5, y^0'=y^post5, (-x^post5+x^0 == 0 /\ -y^post5+y^0 == 0 /\ j^0-j^post5 == 0 /\ -i^post5+i^0 == 0), cost: 1 1: l2 -> l3 : i^0'=i^post2, j^0'=j^post2, x^0'=x^post2, y^0'=y^post2, (-j^post2+j^0 == 0 /\ y^0-y^post2 == 0 /\ -x^post2+x^0 == 0 /\ -i^post2+i^0 == 0 /\ x^0 <= 0 /\ -x^0 <= 0), cost: 1 2: l2 -> l0 : i^0'=i^post3, j^0'=j^post3, x^0'=x^post3, y^0'=y^post3, (-j^post3+j^0 == 0 /\ -x^post3+x^0 == 0 /\ -i^post3+i^0 == 0 /\ y^0-y^post3 == 0 /\ 1-x^0 <= 0), cost: 1 3: l2 -> l0 : i^0'=i^post4, j^0'=j^post4, x^0'=x^post4, y^0'=y^post4, (1+x^0 <= 0 /\ j^0-j^post4 == 0 /\ -x^post4+x^0 == 0 /\ -y^post4+y^0 == 0 /\ -i^post4+i^0 == 0), cost: 1 6: l3 -> l4 : i^0'=i^post7, j^0'=j^post7, x^0'=x^post7, y^0'=y^post7, (-x^post7+x^0 == 0 /\ -i^post7+i^0 == 0 /\ y^0-y^post7 == 0 /\ -j^post7+j^0 == 0 /\ 1+j^0-i^0 <= 0), cost: 1 7: l3 -> l4 : i^0'=i^post8, j^0'=j^post8, x^0'=x^post8, y^0'=y^post8, (-y^post8+y^0 == 0 /\ -x^post8+x^0 == 0 /\ -j^post8+j^0 == 0 /\ -i^post8+i^0 == 0 /\ 1-j^0+i^0 <= 0), cost: 1 8: l3 -> l4 : i^0'=i^post9, j^0'=j^post9, x^0'=x^post9, y^0'=y^post9, (-x^post9+x^0 == 0 /\ -y^post9+y^0 == 0 /\ j^0-j^post9 == 0 /\ -i^post9+i^0 == 0 /\ j^0-i^0 <= 0 /\ -j^0+i^0 <= 0), cost: 1 5: l4 -> l5 : i^0'=i^post6, j^0'=j^post6, x^0'=x^post6, y^0'=y^post6, (-y^post6+y^0 == 0 /\ -i^post6+i^0 == 0 /\ j^0-j^post6 == 0 /\ -x^post6+x^0 == 0), cost: 1 9: l6 -> l1 : i^0'=i^post10, j^0'=j^post10, x^0'=x^post10, y^0'=y^post10, (-j^0+y^post10 == 0 /\ -i^post10+i^0 == 0 /\ j^0-j^post10 == 0 /\ x^post10-i^0 == 0), cost: 1 10: l7 -> l6 : i^0'=i^post11, j^0'=j^post11, x^0'=x^post11, y^0'=y^post11, (i^0-i^post11 == 0 /\ y^0-y^post11 == 0 /\ -j^post11+j^0 == 0 /\ -x^post11+x^0 == 0), cost: 1 Chained Linear Paths Start location: l7 Program variables: i^0 j^0 x^0 y^0 0: l0 -> l1 : i^0'=i^post1, j^0'=j^post1, x^0'=x^post1, y^0'=y^post1, (-i^post1+i^0 == 0 /\ 1+y^post1-y^0 == 0 /\ 1+x^post1-x^0 == 0 /\ j^0-j^post1 == 0), cost: 1 4: l1 -> l2 : i^0'=i^post5, j^0'=j^post5, x^0'=x^post5, y^0'=y^post5, (-x^post5+x^0 == 0 /\ -y^post5+y^0 == 0 /\ j^0-j^post5 == 0 /\ -i^post5+i^0 == 0), cost: 1 1: l2 -> l3 : i^0'=i^post2, j^0'=j^post2, x^0'=x^post2, y^0'=y^post2, (-j^post2+j^0 == 0 /\ y^0-y^post2 == 0 /\ -x^post2+x^0 == 0 /\ -i^post2+i^0 == 0 /\ x^0 <= 0 /\ -x^0 <= 0), cost: 1 2: l2 -> l0 : i^0'=i^post3, j^0'=j^post3, x^0'=x^post3, y^0'=y^post3, (-j^post3+j^0 == 0 /\ -x^post3+x^0 == 0 /\ -i^post3+i^0 == 0 /\ y^0-y^post3 == 0 /\ 1-x^0 <= 0), cost: 1 3: l2 -> l0 : i^0'=i^post4, j^0'=j^post4, x^0'=x^post4, y^0'=y^post4, (1+x^0 <= 0 /\ j^0-j^post4 == 0 /\ -x^post4+x^0 == 0 /\ -y^post4+y^0 == 0 /\ -i^post4+i^0 == 0), cost: 1 6: l3 -> l4 : i^0'=i^post7, j^0'=j^post7, x^0'=x^post7, y^0'=y^post7, (-x^post7+x^0 == 0 /\ -i^post7+i^0 == 0 /\ y^0-y^post7 == 0 /\ -j^post7+j^0 == 0 /\ 1+j^0-i^0 <= 0), cost: 1 7: l3 -> l4 : i^0'=i^post8, j^0'=j^post8, x^0'=x^post8, y^0'=y^post8, (-y^post8+y^0 == 0 /\ -x^post8+x^0 == 0 /\ -j^post8+j^0 == 0 /\ -i^post8+i^0 == 0 /\ 1-j^0+i^0 <= 0), cost: 1 8: l3 -> l4 : i^0'=i^post9, j^0'=j^post9, x^0'=x^post9, y^0'=y^post9, (-x^post9+x^0 == 0 /\ -y^post9+y^0 == 0 /\ j^0-j^post9 == 0 /\ -i^post9+i^0 == 0 /\ j^0-i^0 <= 0 /\ -j^0+i^0 <= 0), cost: 1 5: l4 -> l5 : i^0'=i^post6, j^0'=j^post6, x^0'=x^post6, y^0'=y^post6, (-y^post6+y^0 == 0 /\ -i^post6+i^0 == 0 /\ j^0-j^post6 == 0 /\ -x^post6+x^0 == 0), cost: 1 11: l7 -> l1 : i^0'=i^post10, j^0'=j^post10, x^0'=x^post10, y^0'=y^post10, (i^0-i^post11 == 0 /\ -i^post10+i^post11 == 0 /\ j^post11-j^post10 == 0 /\ x^post10-i^post11 == 0 /\ y^0-y^post11 == 0 /\ -j^post11+j^0 == 0 /\ -j^post11+y^post10 == 0 /\ -x^post11+x^0 == 0), cost: 1 Eliminating location l6 by chaining: Applied chaining First rule: l7 -> l6 : i^0'=i^post11, j^0'=j^post11, x^0'=x^post11, y^0'=y^post11, (i^0-i^post11 == 0 /\ y^0-y^post11 == 0 /\ -j^post11+j^0 == 0 /\ -x^post11+x^0 == 0), cost: 1 Second rule: l6 -> l1 : i^0'=i^post10, j^0'=j^post10, x^0'=x^post10, y^0'=y^post10, (-j^0+y^post10 == 0 /\ -i^post10+i^0 == 0 /\ j^0-j^post10 == 0 /\ x^post10-i^0 == 0), cost: 1 New rule: l7 -> l1 : i^0'=i^post10, j^0'=j^post10, x^0'=x^post10, y^0'=y^post10, (i^0-i^post11 == 0 /\ -i^post10+i^post11 == 0 /\ j^post11-j^post10 == 0 /\ x^post10-i^post11 == 0 /\ y^0-y^post11 == 0 /\ -j^post11+j^0 == 0 /\ -j^post11+y^post10 == 0 /\ -x^post11+x^0 == 0), cost: 1 Applied deletion Removed the following rules: 9 10 Simplified Transitions Start location: l7 Program variables: i^0 j^0 x^0 y^0 12: l0 -> l1 : x^0'=-1+x^0, y^0'=-1+y^0, T, cost: 1 16: l1 -> l2 : T, cost: 1 13: l2 -> l3 : (x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 14: l2 -> l0 : 1-x^0 <= 0, cost: 1 15: l2 -> l0 : 1+x^0 <= 0, cost: 1 18: l3 -> l4 : 1+j^0-i^0 <= 0, cost: 1 19: l3 -> l4 : 1-j^0+i^0 <= 0, cost: 1 20: l3 -> l4 : (j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 17: l4 -> l5 : T, cost: 1 21: l7 -> l1 : x^0'=i^0, y^0'=j^0, T, cost: 1 Propagated Equalities Original rule: l0 -> l1 : i^0'=i^post1, j^0'=j^post1, x^0'=x^post1, y^0'=y^post1, (-i^post1+i^0 == 0 /\ 1+y^post1-y^0 == 0 /\ 1+x^post1-x^0 == 0 /\ j^0-j^post1 == 0), cost: 1 New rule: l0 -> l1 : i^0'=i^0, j^0'=j^0, x^0'=-1+x^0, y^0'=-1+y^0, 0 == 0, cost: 1 propagated equality i^post1 = i^0 propagated equality y^post1 = -1+y^0 propagated equality x^post1 = -1+x^0 propagated equality j^post1 = j^0 Simplified Guard Original rule: l0 -> l1 : i^0'=i^0, j^0'=j^0, x^0'=-1+x^0, y^0'=-1+y^0, 0 == 0, cost: 1 New rule: l0 -> l1 : i^0'=i^0, j^0'=j^0, x^0'=-1+x^0, y^0'=-1+y^0, T, cost: 1 Removed Trivial Updates Original rule: l0 -> l1 : i^0'=i^0, j^0'=j^0, x^0'=-1+x^0, y^0'=-1+y^0, T, cost: 1 New rule: l0 -> l1 : x^0'=-1+x^0, y^0'=-1+y^0, T, cost: 1 made implied equalities explicit Original rule: l2 -> l3 : i^0'=i^post2, j^0'=j^post2, x^0'=x^post2, y^0'=y^post2, (-j^post2+j^0 == 0 /\ y^0-y^post2 == 0 /\ -x^post2+x^0 == 0 /\ -i^post2+i^0 == 0 /\ x^0 <= 0 /\ -x^0 <= 0), cost: 1 New rule: l2 -> l3 : i^0'=i^post2, j^0'=j^post2, x^0'=x^post2, y^0'=y^post2, (-j^post2+j^0 == 0 /\ y^0-y^post2 == 0 /\ -x^post2+x^0 == 0 /\ -i^post2+i^0 == 0 /\ x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 Propagated Equalities Original rule: l2 -> l3 : i^0'=i^post2, j^0'=j^post2, x^0'=x^post2, y^0'=y^post2, (-j^post2+j^0 == 0 /\ y^0-y^post2 == 0 /\ -x^post2+x^0 == 0 /\ -i^post2+i^0 == 0 /\ x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 New rule: l2 -> l3 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 propagated equality j^post2 = j^0 propagated equality y^post2 = y^0 propagated equality x^post2 = x^0 propagated equality i^post2 = i^0 Simplified Guard Original rule: l2 -> l3 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 New rule: l2 -> l3 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 made implied equalities explicit Original rule: l2 -> l3 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 New rule: l2 -> l3 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 Removed Trivial Updates Original rule: l2 -> l3 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 New rule: l2 -> l3 : (x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 Propagated Equalities Original rule: l2 -> l0 : i^0'=i^post3, j^0'=j^post3, x^0'=x^post3, y^0'=y^post3, (-j^post3+j^0 == 0 /\ -x^post3+x^0 == 0 /\ -i^post3+i^0 == 0 /\ y^0-y^post3 == 0 /\ 1-x^0 <= 0), cost: 1 New rule: l2 -> l0 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ 1-x^0 <= 0), cost: 1 propagated equality j^post3 = j^0 propagated equality x^post3 = x^0 propagated equality i^post3 = i^0 propagated equality y^post3 = y^0 Simplified Guard Original rule: l2 -> l0 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ 1-x^0 <= 0), cost: 1 New rule: l2 -> l0 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 1-x^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l2 -> l0 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 1-x^0 <= 0, cost: 1 New rule: l2 -> l0 : 1-x^0 <= 0, cost: 1 Propagated Equalities Original rule: l2 -> l0 : i^0'=i^post4, j^0'=j^post4, x^0'=x^post4, y^0'=y^post4, (1+x^0 <= 0 /\ j^0-j^post4 == 0 /\ -x^post4+x^0 == 0 /\ -y^post4+y^0 == 0 /\ -i^post4+i^0 == 0), cost: 1 New rule: l2 -> l0 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ 1+x^0 <= 0), cost: 1 propagated equality j^post4 = j^0 propagated equality x^post4 = x^0 propagated equality y^post4 = y^0 propagated equality i^post4 = i^0 Simplified Guard Original rule: l2 -> l0 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ 1+x^0 <= 0), cost: 1 New rule: l2 -> l0 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 1+x^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l2 -> l0 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 1+x^0 <= 0, cost: 1 New rule: l2 -> l0 : 1+x^0 <= 0, cost: 1 Propagated Equalities Original rule: l1 -> l2 : i^0'=i^post5, j^0'=j^post5, x^0'=x^post5, y^0'=y^post5, (-x^post5+x^0 == 0 /\ -y^post5+y^0 == 0 /\ j^0-j^post5 == 0 /\ -i^post5+i^0 == 0), cost: 1 New rule: l1 -> l2 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 0 == 0, cost: 1 propagated equality x^post5 = x^0 propagated equality y^post5 = y^0 propagated equality j^post5 = j^0 propagated equality i^post5 = i^0 Simplified Guard Original rule: l1 -> l2 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 0 == 0, cost: 1 New rule: l1 -> l2 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, T, cost: 1 Removed Trivial Updates Original rule: l1 -> l2 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, T, cost: 1 New rule: l1 -> l2 : T, cost: 1 Propagated Equalities Original rule: l4 -> l5 : i^0'=i^post6, j^0'=j^post6, x^0'=x^post6, y^0'=y^post6, (-y^post6+y^0 == 0 /\ -i^post6+i^0 == 0 /\ j^0-j^post6 == 0 /\ -x^post6+x^0 == 0), cost: 1 New rule: l4 -> l5 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 0 == 0, cost: 1 propagated equality y^post6 = y^0 propagated equality i^post6 = i^0 propagated equality j^post6 = j^0 propagated equality x^post6 = x^0 Simplified Guard Original rule: l4 -> l5 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 0 == 0, cost: 1 New rule: l4 -> l5 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, T, cost: 1 Removed Trivial Updates Original rule: l4 -> l5 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, T, cost: 1 New rule: l4 -> l5 : T, cost: 1 Propagated Equalities Original rule: l3 -> l4 : i^0'=i^post7, j^0'=j^post7, x^0'=x^post7, y^0'=y^post7, (-x^post7+x^0 == 0 /\ -i^post7+i^0 == 0 /\ y^0-y^post7 == 0 /\ -j^post7+j^0 == 0 /\ 1+j^0-i^0 <= 0), cost: 1 New rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ 1+j^0-i^0 <= 0), cost: 1 propagated equality x^post7 = x^0 propagated equality i^post7 = i^0 propagated equality y^post7 = y^0 propagated equality j^post7 = j^0 Simplified Guard Original rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ 1+j^0-i^0 <= 0), cost: 1 New rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 1+j^0-i^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 1+j^0-i^0 <= 0, cost: 1 New rule: l3 -> l4 : 1+j^0-i^0 <= 0, cost: 1 Propagated Equalities Original rule: l3 -> l4 : i^0'=i^post8, j^0'=j^post8, x^0'=x^post8, y^0'=y^post8, (-y^post8+y^0 == 0 /\ -x^post8+x^0 == 0 /\ -j^post8+j^0 == 0 /\ -i^post8+i^0 == 0 /\ 1-j^0+i^0 <= 0), cost: 1 New rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ 1-j^0+i^0 <= 0), cost: 1 propagated equality y^post8 = y^0 propagated equality x^post8 = x^0 propagated equality j^post8 = j^0 propagated equality i^post8 = i^0 Simplified Guard Original rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ 1-j^0+i^0 <= 0), cost: 1 New rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 1-j^0+i^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, 1-j^0+i^0 <= 0, cost: 1 New rule: l3 -> l4 : 1-j^0+i^0 <= 0, cost: 1 made implied equalities explicit Original rule: l3 -> l4 : i^0'=i^post9, j^0'=j^post9, x^0'=x^post9, y^0'=y^post9, (-x^post9+x^0 == 0 /\ -y^post9+y^0 == 0 /\ j^0-j^post9 == 0 /\ -i^post9+i^0 == 0 /\ j^0-i^0 <= 0 /\ -j^0+i^0 <= 0), cost: 1 New rule: l3 -> l4 : i^0'=i^post9, j^0'=j^post9, x^0'=x^post9, y^0'=y^post9, (-x^post9+x^0 == 0 /\ -y^post9+y^0 == 0 /\ j^0-j^post9 == 0 /\ -i^post9+i^0 == 0 /\ j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 Propagated Equalities Original rule: l3 -> l4 : i^0'=i^post9, j^0'=j^post9, x^0'=x^post9, y^0'=y^post9, (-x^post9+x^0 == 0 /\ -y^post9+y^0 == 0 /\ j^0-j^post9 == 0 /\ -i^post9+i^0 == 0 /\ j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 New rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 propagated equality x^post9 = x^0 propagated equality y^post9 = y^0 propagated equality j^post9 = j^0 propagated equality i^post9 = i^0 Simplified Guard Original rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (0 == 0 /\ j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 New rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 made implied equalities explicit Original rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 New rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 Removed Trivial Updates Original rule: l3 -> l4 : i^0'=i^0, j^0'=j^0, x^0'=x^0, y^0'=y^0, (j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 New rule: l3 -> l4 : (j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 Propagated Equalities Original rule: l7 -> l1 : i^0'=i^post10, j^0'=j^post10, x^0'=x^post10, y^0'=y^post10, (i^0-i^post11 == 0 /\ -i^post10+i^post11 == 0 /\ j^post11-j^post10 == 0 /\ x^post10-i^post11 == 0 /\ y^0-y^post11 == 0 /\ -j^post11+j^0 == 0 /\ -j^post11+y^post10 == 0 /\ -x^post11+x^0 == 0), cost: 1 New rule: l7 -> l1 : i^0'=i^post11, j^0'=j^post11, x^0'=i^post11, y^0'=j^post11, (0 == 0 /\ i^0-i^post11 == 0 /\ y^0-y^post11 == 0 /\ -j^post11+j^0 == 0 /\ -x^post11+x^0 == 0), cost: 1 propagated equality i^post10 = i^post11 propagated equality j^post10 = j^post11 propagated equality x^post10 = i^post11 propagated equality y^post10 = j^post11 Propagated Equalities Original rule: l7 -> l1 : i^0'=i^post11, j^0'=j^post11, x^0'=i^post11, y^0'=j^post11, (0 == 0 /\ i^0-i^post11 == 0 /\ y^0-y^post11 == 0 /\ -j^post11+j^0 == 0 /\ -x^post11+x^0 == 0), cost: 1 New rule: l7 -> l1 : i^0'=i^0, j^0'=j^0, x^0'=i^0, y^0'=j^0, 0 == 0, cost: 1 propagated equality i^post11 = i^0 propagated equality y^post11 = y^0 propagated equality j^post11 = j^0 propagated equality x^post11 = x^0 Simplified Guard Original rule: l7 -> l1 : i^0'=i^0, j^0'=j^0, x^0'=i^0, y^0'=j^0, 0 == 0, cost: 1 New rule: l7 -> l1 : i^0'=i^0, j^0'=j^0, x^0'=i^0, y^0'=j^0, T, cost: 1 Removed Trivial Updates Original rule: l7 -> l1 : i^0'=i^0, j^0'=j^0, x^0'=i^0, y^0'=j^0, T, cost: 1 New rule: l7 -> l1 : x^0'=i^0, y^0'=j^0, T, cost: 1 Step with 21 Trace 21[T] Blocked [{}, {}] Step with 16 Trace 21[T], 16[T] Blocked [{}, {}, {}] Step with 13 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {}, {}, {}] Step with 18 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 18[(1+j^0-i^0 <= 0)] Blocked [{}, {}, {}, {}, {}] Step with 17 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 18[(1+j^0-i^0 <= 0)], 17[T] Blocked [{}, {}, {}, {}, {}, {}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 18[(1+j^0-i^0 <= 0)] Blocked [{}, {}, {}, {}, {17[T]}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {}, {}, {18[T]}] Step with 19 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 19[(1-j^0+i^0 <= 0)] Blocked [{}, {}, {}, {18[T]}, {}] Step with 17 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 19[(1-j^0+i^0 <= 0)], 17[T] Blocked [{}, {}, {}, {18[T]}, {}, {}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 19[(1-j^0+i^0 <= 0)] Blocked [{}, {}, {}, {18[T]}, {17[T]}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {}, {}, {18[T], 19[T]}] Step with 20 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 20[(j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0)] Blocked [{}, {}, {}, {18[T], 19[T]}, {}] Step with 17 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 20[(j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0)], 17[T] Blocked [{}, {}, {}, {18[T], 19[T]}, {}, {}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 20[(j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0)] Blocked [{}, {}, {}, {18[T], 19[T]}, {17[T]}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {}, {}, {18[T], 19[T], 20[T]}] Backtrack Trace 21[T], 16[T] Blocked [{}, {}, {13[T]}] Step with 14 Trace 21[T], 16[T], 14[(1-x^0 <= 0)] Blocked [{}, {}, {13[T]}, {}] Step with 12 Trace 21[T], 16[T], 14[(1-x^0 <= 0)], 12[T] Blocked [{}, {}, {13[T]}, {}, {}] Accelerate Start location: l7 Program variables: i^0 j^0 x^0 y^0 12: l0 -> l1 : x^0'=-1+x^0, y^0'=-1+y^0, T, cost: 1 16: l1 -> l2 : T, cost: 1 22: l1 -> l1 : x^0'=-n+x^0, y^0'=-n+y^0, (-n+x^0 >= 0 /\ -1+n >= 0), cost: 1 13: l2 -> l3 : (x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 14: l2 -> l0 : 1-x^0 <= 0, cost: 1 15: l2 -> l0 : 1+x^0 <= 0, cost: 1 18: l3 -> l4 : 1+j^0-i^0 <= 0, cost: 1 19: l3 -> l4 : 1-j^0+i^0 <= 0, cost: 1 20: l3 -> l4 : (j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 17: l4 -> l5 : T, cost: 1 21: l7 -> l1 : x^0'=i^0, y^0'=j^0, T, cost: 1 Loop Acceleration Original rule: l1 -> l1 : x^0'=-1+x^0, y^0'=-1+y^0, 1-x^0 <= 0, cost: 1 New rule: l1 -> l1 : x^0'=-n+x^0, y^0'=-n+y^0, (-n+x^0 >= 0 /\ -1+n >= 0), cost: 1 -1+x^0 >= 0 [0]: montonic decrease yields -n+x^0 >= 0 -1+x^0 >= 0 [1]: eventual increase yields (1 <= 0 /\ -1+x^0 >= 0) Replacement map: {-1+x^0 >= 0 -> -n+x^0 >= 0} Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)] Blocked [{}, {}, {22[T]}] Step with 16 Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T] Blocked [{}, {}, {22[T]}, {}] Step with 14 Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 14[(1-x^0 <= 0)] Blocked [{}, {}, {22[T]}, {}, {}] Step with 12 Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 14[(1-x^0 <= 0)], 12[T] Blocked [{}, {}, {22[T]}, {}, {}, {}] Covered Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 14[(1-x^0 <= 0)] Blocked [{}, {}, {22[T]}, {}, {12[T]}] Backtrack Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T] Blocked [{}, {}, {22[T]}, {14[T]}] Step with 13 Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {}] Step with 20 Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 20[(j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0)] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {}, {}] Step with 17 Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 20[(j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0)], 17[T] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {}, {}, {}] Backtrack Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 20[(j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0)] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {}, {17[T]}] Backtrack Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {20[T]}] Step with 18 Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 18[(1+j^0-i^0 <= 0)] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {20[T]}, {}] Step with 17 Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 18[(1+j^0-i^0 <= 0)], 17[T] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {20[T]}, {}, {}] Backtrack Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 18[(1+j^0-i^0 <= 0)] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {20[T]}, {17[T]}] Backtrack Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {18[T], 20[T]}] Step with 19 Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 19[(1-j^0+i^0 <= 0)] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {18[T], 20[T]}, {}] Step with 17 Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 19[(1-j^0+i^0 <= 0)], 17[T] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {18[T], 20[T]}, {}, {}] Backtrack Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 19[(1-j^0+i^0 <= 0)] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {18[T], 20[T]}, {17[T]}] Backtrack Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {}, {22[T]}, {14[T], 15[T]}, {18[T], 19[T], 20[T]}] Backtrack Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)], 16[T] Blocked [{}, {}, {22[T]}, {13[T], 14[T], 15[T]}] Backtrack Trace 21[T], 22[(-n+x^0 >= 0 /\ -1+n >= 0)] Blocked [{}, {}, {16[T], 22[T]}] Backtrack Trace 21[T] Blocked [{}, {22[T]}] Step with 16 Trace 21[T], 16[T] Blocked [{}, {22[T]}, {}] Step with 13 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {22[T]}, {}, {}] Step with 19 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 19[(1-j^0+i^0 <= 0)] Blocked [{}, {22[T]}, {}, {}, {}] Step with 17 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 19[(1-j^0+i^0 <= 0)], 17[T] Blocked [{}, {22[T]}, {}, {}, {}, {}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 19[(1-j^0+i^0 <= 0)] Blocked [{}, {22[T]}, {}, {}, {17[T]}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {22[T]}, {}, {19[T]}] Step with 20 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 20[(j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0)] Blocked [{}, {22[T]}, {}, {19[T]}, {}] Step with 17 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 20[(j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0)], 17[T] Blocked [{}, {22[T]}, {}, {19[T]}, {}, {}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 20[(j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0)] Blocked [{}, {22[T]}, {}, {19[T]}, {17[T]}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {22[T]}, {}, {19[T], 20[T]}] Step with 18 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 18[(1+j^0-i^0 <= 0)] Blocked [{}, {22[T]}, {}, {19[T], 20[T]}, {}] Step with 17 Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 18[(1+j^0-i^0 <= 0)], 17[T] Blocked [{}, {22[T]}, {}, {19[T], 20[T]}, {}, {}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)], 18[(1+j^0-i^0 <= 0)] Blocked [{}, {22[T]}, {}, {19[T], 20[T]}, {17[T]}] Backtrack Trace 21[T], 16[T], 13[(x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0)] Blocked [{}, {22[T]}, {}, {18[T], 19[T], 20[T]}] Backtrack Trace 21[T], 16[T] Blocked [{}, {22[T]}, {13[T]}] Step with 14 Trace 21[T], 16[T], 14[(1-x^0 <= 0)] Blocked [{}, {22[T]}, {13[T]}, {}] Step with 12 Trace 21[T], 16[T], 14[(1-x^0 <= 0)], 12[T] Blocked [{}, {22[T]}, {13[T]}, {}, {}] Covered Trace 21[T], 16[T], 14[(1-x^0 <= 0)] Blocked [{}, {22[T]}, {13[T]}, {12[T]}] Backtrack Trace 21[T], 16[T] Blocked [{}, {22[T]}, {13[T], 14[T]}] Step with 15 Trace 21[T], 16[T], 15[(1+x^0 <= 0)] Blocked [{}, {22[T]}, {13[T], 14[T]}, {}] Step with 12 Trace 21[T], 16[T], 15[(1+x^0 <= 0)], 12[T] Blocked [{}, {22[T]}, {13[T], 14[T]}, {}, {}] Nonterm Start location: l7 Program variables: i^0 j^0 x^0 y^0 12: l0 -> l1 : x^0'=-1+x^0, y^0'=-1+y^0, T, cost: 1 16: l1 -> l2 : T, cost: 1 22: l1 -> l1 : x^0'=-n+x^0, y^0'=-n+y^0, (-n+x^0 >= 0 /\ -1+n >= 0), cost: 1 23: l1 -> LoAT_sink : (-1+n2 >= 0 /\ -1-x^0 >= 0), cost: NONTERM 24: l1 -> l1 : x^0'=-n2+x^0, y^0'=-n2+y^0, (-1+n2 >= 0 /\ -1-x^0 >= 0), cost: 1 13: l2 -> l3 : (x^0 <= 0 /\ x^0 == 0 /\ -x^0 <= 0), cost: 1 14: l2 -> l0 : 1-x^0 <= 0, cost: 1 15: l2 -> l0 : 1+x^0 <= 0, cost: 1 18: l3 -> l4 : 1+j^0-i^0 <= 0, cost: 1 19: l3 -> l4 : 1-j^0+i^0 <= 0, cost: 1 20: l3 -> l4 : (j^0-i^0 <= 0 /\ j^0-i^0 == 0 /\ -j^0+i^0 <= 0), cost: 1 17: l4 -> l5 : T, cost: 1 21: l7 -> l1 : x^0'=i^0, y^0'=j^0, T, cost: 1 Certificate of Non-Termination Original rule: l1 -> l1 : x^0'=-1+x^0, y^0'=-1+y^0, 1+x^0 <= 0, cost: 1 New rule: l1 -> LoAT_sink : (-1+n2 >= 0 /\ -1-x^0 >= 0), cost: NONTERM -1-x^0 >= 0 [0]: monotonic increase yields -1-x^0 >= 0 Replacement map: {-1-x^0 >= 0 -> -1-x^0 >= 0} Loop Acceleration Original rule: l1 -> l1 : x^0'=-1+x^0, y^0'=-1+y^0, 1+x^0 <= 0, cost: 1 New rule: l1 -> l1 : x^0'=-n2+x^0, y^0'=-n2+y^0, (-1+n2 >= 0 /\ -1-x^0 >= 0), cost: 1 -1-x^0 >= 0 [0]: monotonic increase yields -1-x^0 >= 0 Replacement map: {-1-x^0 >= 0 -> -1-x^0 >= 0} Step with 23 Trace 21[T], 23[(-1+n2 >= 0 /\ -1-x^0 >= 0)] Blocked [{}, {22[T]}, {23[T]}] Refute Counterexample [ i^0=-1 j^0=-1 x^0=-1 y^0=-1 ] 21 [ i^0=-1 j^0=-1 x^0=x^0 y^0=y^0 ] 23 NO Build SHA: a05f16bf13df659c382799650051f91bf6828c7b