NO Initial ITS Start location: l4 Program variables: x_1^0 y_1^0 0: l0 -> l1 : x_1^0'=x_1^post1, y_1^0'=y_1^post1, (-2+x_1^post1 == 0 /\ -y_1^post1+y_1^0 == 0), cost: 1 3: l1 -> l2 : x_1^0'=x_1^post4, y_1^0'=y_1^post4, (0 == 0 /\ -x_1^post4+x_1^0 == 0), cost: 1 4: l1 -> l3 : x_1^0'=x_1^post5, y_1^0'=y_1^post5, (2 <= 0 /\ x_1^0-x_1^post5 == 0 /\ -y_1^post5+y_1^0 == 0), cost: 1 1: l2 -> l1 : x_1^0'=x_1^post2, y_1^0'=y_1^post2, (-y_1^post2+y_1^0 == 0 /\ y_1^0 <= 0 /\ 1-x_1^0+x_1^post2 == 0), cost: 1 2: l2 -> l1 : x_1^0'=x_1^post3, y_1^0'=y_1^post3, (-1+x_1^post3-x_1^0 == 0 /\ -y_1^post3+y_1^0 == 0 /\ 1-y_1^0 <= 0), cost: 1 5: l4 -> l0 : x_1^0'=x_1^post6, y_1^0'=y_1^post6, (-y_1^post6+y_1^0 == 0 /\ -x_1^post6+x_1^0 == 0), cost: 1 Chained Linear Paths Start location: l4 Program variables: x_1^0 y_1^0 3: l1 -> l2 : x_1^0'=x_1^post4, y_1^0'=y_1^post4, (0 == 0 /\ -x_1^post4+x_1^0 == 0), cost: 1 4: l1 -> l3 : x_1^0'=x_1^post5, y_1^0'=y_1^post5, (2 <= 0 /\ x_1^0-x_1^post5 == 0 /\ -y_1^post5+y_1^0 == 0), cost: 1 1: l2 -> l1 : x_1^0'=x_1^post2, y_1^0'=y_1^post2, (-y_1^post2+y_1^0 == 0 /\ y_1^0 <= 0 /\ 1-x_1^0+x_1^post2 == 0), cost: 1 2: l2 -> l1 : x_1^0'=x_1^post3, y_1^0'=y_1^post3, (-1+x_1^post3-x_1^0 == 0 /\ -y_1^post3+y_1^0 == 0 /\ 1-y_1^0 <= 0), cost: 1 6: l4 -> l1 : x_1^0'=x_1^post1, y_1^0'=y_1^post1, (-y_1^post6+y_1^0 == 0 /\ -y_1^post1+y_1^post6 == 0 /\ -2+x_1^post1 == 0 /\ -x_1^post6+x_1^0 == 0), cost: 1 Eliminating location l0 by chaining: Applied chaining First rule: l4 -> l0 : x_1^0'=x_1^post6, y_1^0'=y_1^post6, (-y_1^post6+y_1^0 == 0 /\ -x_1^post6+x_1^0 == 0), cost: 1 Second rule: l0 -> l1 : x_1^0'=x_1^post1, y_1^0'=y_1^post1, (-2+x_1^post1 == 0 /\ -y_1^post1+y_1^0 == 0), cost: 1 New rule: l4 -> l1 : x_1^0'=x_1^post1, y_1^0'=y_1^post1, (-y_1^post6+y_1^0 == 0 /\ -y_1^post1+y_1^post6 == 0 /\ -2+x_1^post1 == 0 /\ -x_1^post6+x_1^0 == 0), cost: 1 Applied deletion Removed the following rules: 0 5 Simplified Transitions Start location: l4 Program variables: x_1^0 y_1^0 9: l1 -> l2 : y_1^0'=y_1^post4, T, cost: 1 10: l1 -> l3 : _|_, cost: 1 7: l2 -> l1 : x_1^0'=-1+x_1^0, y_1^0 <= 0, cost: 1 8: l2 -> l1 : x_1^0'=1+x_1^0, 1-y_1^0 <= 0, cost: 1 11: l4 -> l1 : x_1^0'=2, T, cost: 1 Propagated Equalities Original rule: l2 -> l1 : x_1^0'=x_1^post2, y_1^0'=y_1^post2, (-y_1^post2+y_1^0 == 0 /\ y_1^0 <= 0 /\ 1-x_1^0+x_1^post2 == 0), cost: 1 New rule: l2 -> l1 : x_1^0'=-1+x_1^0, y_1^0'=y_1^0, (0 == 0 /\ y_1^0 <= 0), cost: 1 propagated equality y_1^post2 = y_1^0 propagated equality x_1^post2 = -1+x_1^0 Simplified Guard Original rule: l2 -> l1 : x_1^0'=-1+x_1^0, y_1^0'=y_1^0, (0 == 0 /\ y_1^0 <= 0), cost: 1 New rule: l2 -> l1 : x_1^0'=-1+x_1^0, y_1^0'=y_1^0, y_1^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l2 -> l1 : x_1^0'=-1+x_1^0, y_1^0'=y_1^0, y_1^0 <= 0, cost: 1 New rule: l2 -> l1 : x_1^0'=-1+x_1^0, y_1^0 <= 0, cost: 1 Propagated Equalities Original rule: l2 -> l1 : x_1^0'=x_1^post3, y_1^0'=y_1^post3, (-1+x_1^post3-x_1^0 == 0 /\ -y_1^post3+y_1^0 == 0 /\ 1-y_1^0 <= 0), cost: 1 New rule: l2 -> l1 : x_1^0'=1+x_1^0, y_1^0'=y_1^0, (0 == 0 /\ 1-y_1^0 <= 0), cost: 1 propagated equality x_1^post3 = 1+x_1^0 propagated equality y_1^post3 = y_1^0 Simplified Guard Original rule: l2 -> l1 : x_1^0'=1+x_1^0, y_1^0'=y_1^0, (0 == 0 /\ 1-y_1^0 <= 0), cost: 1 New rule: l2 -> l1 : x_1^0'=1+x_1^0, y_1^0'=y_1^0, 1-y_1^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l2 -> l1 : x_1^0'=1+x_1^0, y_1^0'=y_1^0, 1-y_1^0 <= 0, cost: 1 New rule: l2 -> l1 : x_1^0'=1+x_1^0, 1-y_1^0 <= 0, cost: 1 Propagated Equalities Original rule: l1 -> l2 : x_1^0'=x_1^post4, y_1^0'=y_1^post4, (0 == 0 /\ -x_1^post4+x_1^0 == 0), cost: 1 New rule: l1 -> l2 : x_1^0'=x_1^0, y_1^0'=y_1^post4, 0 == 0, cost: 1 propagated equality x_1^post4 = x_1^0 Simplified Guard Original rule: l1 -> l2 : x_1^0'=x_1^0, y_1^0'=y_1^post4, 0 == 0, cost: 1 New rule: l1 -> l2 : x_1^0'=x_1^0, y_1^0'=y_1^post4, T, cost: 1 Removed Trivial Updates Original rule: l1 -> l2 : x_1^0'=x_1^0, y_1^0'=y_1^post4, T, cost: 1 New rule: l1 -> l2 : y_1^0'=y_1^post4, T, cost: 1 Propagated Equalities Original rule: l1 -> l3 : x_1^0'=x_1^post5, y_1^0'=y_1^post5, (2 <= 0 /\ x_1^0-x_1^post5 == 0 /\ -y_1^post5+y_1^0 == 0), cost: 1 New rule: l1 -> l3 : x_1^0'=x_1^0, y_1^0'=y_1^0, (0 == 0 /\ 2 <= 0), cost: 1 propagated equality x_1^post5 = x_1^0 propagated equality y_1^post5 = y_1^0 Simplified Guard Original rule: l1 -> l3 : x_1^0'=x_1^0, y_1^0'=y_1^0, (0 == 0 /\ 2 <= 0), cost: 1 New rule: l1 -> l3 : x_1^0'=x_1^0, y_1^0'=y_1^0, _|_, cost: 1 Removed Trivial Updates Original rule: l1 -> l3 : x_1^0'=x_1^0, y_1^0'=y_1^0, _|_, cost: 1 New rule: l1 -> l3 : _|_, cost: 1 Propagated Equalities Original rule: l4 -> l1 : x_1^0'=x_1^post1, y_1^0'=y_1^post1, (-y_1^post6+y_1^0 == 0 /\ -y_1^post1+y_1^post6 == 0 /\ -2+x_1^post1 == 0 /\ -x_1^post6+x_1^0 == 0), cost: 1 New rule: l4 -> l1 : x_1^0'=2, y_1^0'=y_1^post6, (0 == 0 /\ -y_1^post6+y_1^0 == 0 /\ -x_1^post6+x_1^0 == 0), cost: 1 propagated equality y_1^post1 = y_1^post6 propagated equality x_1^post1 = 2 Propagated Equalities Original rule: l4 -> l1 : x_1^0'=2, y_1^0'=y_1^post6, (0 == 0 /\ -y_1^post6+y_1^0 == 0 /\ -x_1^post6+x_1^0 == 0), cost: 1 New rule: l4 -> l1 : x_1^0'=2, y_1^0'=y_1^0, 0 == 0, cost: 1 propagated equality y_1^post6 = y_1^0 propagated equality x_1^post6 = x_1^0 Simplified Guard Original rule: l4 -> l1 : x_1^0'=2, y_1^0'=y_1^0, 0 == 0, cost: 1 New rule: l4 -> l1 : x_1^0'=2, y_1^0'=y_1^0, T, cost: 1 Removed Trivial Updates Original rule: l4 -> l1 : x_1^0'=2, y_1^0'=y_1^0, T, cost: 1 New rule: l4 -> l1 : x_1^0'=2, T, cost: 1 Step with 11 Trace 11[T] Blocked [{}, {}] Step with 9 Trace 11[T], 9[T] Blocked [{}, {10[T]}, {}] Step with 7 Trace 11[T], 9[T], 7[(y_1^0 <= 0)] Blocked [{}, {10[T]}, {}, {}] Nonterm Start location: l4 Program variables: x_1^0 y_1^0 9: l1 -> l2 : y_1^0'=y_1^post4, T, cost: 1 10: l1 -> l3 : _|_, cost: 1 12: l1 -> LoAT_sink : (-1+n >= 0 /\ -y_1^post41 >= 0), cost: NONTERM 13: l1 -> l1 : x_1^0'=-n+x_1^0, y_1^0'=y_1^post41, (-1+n >= 0 /\ -y_1^post41 >= 0), cost: 1 7: l2 -> l1 : x_1^0'=-1+x_1^0, y_1^0 <= 0, cost: 1 8: l2 -> l1 : x_1^0'=1+x_1^0, 1-y_1^0 <= 0, cost: 1 11: l4 -> l1 : x_1^0'=2, T, cost: 1 Certificate of Non-Termination Original rule: l1 -> l1 : x_1^0'=-1+x_1^0, y_1^0'=y_1^post41, y_1^post41 <= 0, cost: 1 New rule: l1 -> LoAT_sink : (-1+n >= 0 /\ -y_1^post41 >= 0), cost: NONTERM -y_1^post41 >= 0 [0]: monotonic increase yields -y_1^post41 >= 0 Replacement map: {-y_1^post41 >= 0 -> -y_1^post41 >= 0} Loop Acceleration Original rule: l1 -> l1 : x_1^0'=-1+x_1^0, y_1^0'=y_1^post41, y_1^post41 <= 0, cost: 1 New rule: l1 -> l1 : x_1^0'=-n+x_1^0, y_1^0'=y_1^post41, (-1+n >= 0 /\ -y_1^post41 >= 0), cost: 1 -y_1^post41 >= 0 [0]: monotonic increase yields -y_1^post41 >= 0 Replacement map: {-y_1^post41 >= 0 -> -y_1^post41 >= 0} Step with 12 Trace 11[T], 12[(-1+n >= 0 /\ -y_1^post41 >= 0)] Blocked [{}, {10[T]}, {12[T]}] Refute Counterexample [ x_1^0=2 y_1^0=0 ] 11 [ x_1^0=x_1^0 y_1^0=0 ] 12 NO Build SHA: a05f16bf13df659c382799650051f91bf6828c7b