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