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