unknown Initial ITS Start location: [1] Program variables: m n v1 v2 0: [1] -> [2] : n'=nondet, T, cost: 1 1: [2] -> [3] : m'=nondet1, T, cost: 1 2: [3] -> [5] : (m > 0 /\ n >= 0), cost: 1 16: [3] -> [4] : (m <= 0 \/ n < 0), cost: 1 3: [5] -> [6] : v1'=n, T, cost: 1 4: [6] -> [7] : v2'=0, T, cost: 1 5: [7] -> [8] : v1 > 0, cost: 1 14: [7] -> [15] : v1 <= 0, cost: 1 6: [8] -> [10] : v2-m < 0, cost: 1 10: [8] -> [13] : v2-m >= 0, cost: 1 13: [9] -> [7] : T, cost: 1 7: [10] -> [11] : v2'=1+v2, T, cost: 1 8: [11] -> [12] : v1'=-1+v1, T, cost: 1 9: [12] -> [9] : T, cost: 1 11: [13] -> [14] : v2'=0, T, cost: 1 12: [14] -> [9] : T, cost: 1 15: [15] -> [4] : T, cost: 1 Chained Linear Paths Start location: [1] Program variables: m n v1 v2 17: [1] -> [3] : m'=nondet1, n'=nondet, T, cost: 1 16: [3] -> [4] : (m <= 0 \/ n < 0), cost: 1 19: [3] -> [7] : v1'=n, v2'=0, (m > 0 /\ n >= 0), cost: 1 5: [7] -> [8] : v1 > 0, cost: 1 20: [7] -> [4] : v1 <= 0, cost: 1 24: [8] -> [9] : v2'=0, v2-m >= 0, cost: 1 25: [8] -> [9] : v1'=-1+v1, v2'=1+v2, v2-m < 0, cost: 1 13: [9] -> [7] : T, cost: 1 Eliminating location [2] by chaining: Applied chaining First rule: [1] -> [2] : n'=nondet, T, cost: 1 Second rule: [2] -> [3] : m'=nondet1, T, cost: 1 New rule: [1] -> [3] : m'=nondet1, n'=nondet, T, cost: 1 Applied deletion Removed the following rules: 0 1 Eliminating location [5] by chaining: Applied chaining First rule: [3] -> [5] : (m > 0 /\ n >= 0), cost: 1 Second rule: [5] -> [6] : v1'=n, T, cost: 1 New rule: [3] -> [6] : v1'=n, (m > 0 /\ n >= 0), cost: 1 Applied deletion Removed the following rules: 2 3 Eliminating location [6] by chaining: Applied chaining First rule: [3] -> [6] : v1'=n, (m > 0 /\ n >= 0), cost: 1 Second rule: [6] -> [7] : v2'=0, T, cost: 1 New rule: [3] -> [7] : v1'=n, v2'=0, (m > 0 /\ n >= 0), cost: 1 Applied deletion Removed the following rules: 4 18 Eliminating location [15] by chaining: Applied chaining First rule: [7] -> [15] : v1 <= 0, cost: 1 Second rule: [15] -> [4] : T, cost: 1 New rule: [7] -> [4] : v1 <= 0, cost: 1 Applied deletion Removed the following rules: 14 15 Eliminating location [10] by chaining: Applied chaining First rule: [8] -> [10] : v2-m < 0, cost: 1 Second rule: [10] -> [11] : v2'=1+v2, T, cost: 1 New rule: [8] -> [11] : v2'=1+v2, v2-m < 0, cost: 1 Applied deletion Removed the following rules: 6 7 Eliminating location [13] by chaining: Applied chaining First rule: [8] -> [13] : v2-m >= 0, cost: 1 Second rule: [13] -> [14] : v2'=0, T, cost: 1 New rule: [8] -> [14] : v2'=0, v2-m >= 0, cost: 1 Applied deletion Removed the following rules: 10 11 Eliminating location [11] by chaining: Applied chaining First rule: [8] -> [11] : v2'=1+v2, v2-m < 0, cost: 1 Second rule: [11] -> [12] : v1'=-1+v1, T, cost: 1 New rule: [8] -> [12] : v1'=-1+v1, v2'=1+v2, v2-m < 0, cost: 1 Applied deletion Removed the following rules: 8 21 Eliminating location [14] by chaining: Applied chaining First rule: [8] -> [14] : v2'=0, v2-m >= 0, cost: 1 Second rule: [14] -> [9] : T, cost: 1 New rule: [8] -> [9] : v2'=0, v2-m >= 0, cost: 1 Applied deletion Removed the following rules: 12 22 Eliminating location [12] by chaining: Applied chaining First rule: [8] -> [12] : v1'=-1+v1, v2'=1+v2, v2-m < 0, cost: 1 Second rule: [12] -> [9] : T, cost: 1 New rule: [8] -> [9] : v1'=-1+v1, v2'=1+v2, v2-m < 0, cost: 1 Applied deletion Removed the following rules: 9 23 Step with 17 Trace 17[T] Blocked [{}, {}] Step with 16 Trace 17[T], 16[(m <= 0)] Blocked [{}, {}, {}] Backtrack Trace 17[T] Blocked [{}, {16[m <= 0]}] Step with 16 Trace 17[T], 16[(n < 0)] Blocked [{}, {16[m <= 0]}, {}] Backtrack Trace 17[T] Blocked [{}, {16[(m <= 0 /\ n < 0)]}] Step with 19 Trace 17[T], 19[(m > 0 /\ n >= 0)] Blocked [{}, {16[T]}, {}] Step with 20 Trace 17[T], 19[(m > 0 /\ n >= 0)], 20[(v1 <= 0)] Blocked [{}, {16[T]}, {}, {}] Backtrack Trace 17[T], 19[(m > 0 /\ n >= 0)] Blocked [{}, {16[T]}, {20[T]}] Step with 5 Trace 17[T], 19[(m > 0 /\ n >= 0)], 5[(v1 > 0)] Blocked [{}, {16[T]}, {20[T]}, {}] Step with 25 Trace 17[T], 19[(m > 0 /\ n >= 0)], 5[(v1 > 0)], 25[(v2-m < 0)] Blocked [{}, {16[T]}, {20[T]}, {24[T]}, {}] Step with 13 Trace 17[T], 19[(m > 0 /\ n >= 0)], 5[(v1 > 0)], 25[(v2-m < 0)], 13[T] Blocked [{}, {16[T]}, {20[T]}, {24[T]}, {}, {}] Accelerate Start location: [1] Program variables: m n v1 v2 17: [1] -> [3] : m'=nondet1, n'=nondet, T, cost: 1 16: [3] -> [4] : (m <= 0 \/ n < 0), cost: 1 19: [3] -> [7] : v1'=n, v2'=0, (m > 0 /\ n >= 0), cost: 1 5: [7] -> [8] : v1 > 0, cost: 1 20: [7] -> [4] : v1 <= 0, cost: 1 26: [7] -> [7] : v1'=-n9+v1, v2'=n9+v2, (1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0), cost: 1 24: [8] -> [9] : v2'=0, v2-m >= 0, cost: 1 25: [8] -> [9] : v1'=-1+v1, v2'=1+v2, v2-m < 0, cost: 1 13: [9] -> [7] : T, cost: 1 Loop Acceleration Original rule: [7] -> [7] : v1'=-1+v1, v2'=1+v2, (v1 > 0 /\ v2-m < 0), cost: 1 New rule: [7] -> [7] : v1'=-n9+v1, v2'=n9+v2, (1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0), cost: 1 v1 > 0 [0]: montonic decrease yields 1-n9+v1 > 0 v1 > 0 [1]: eventual increase yields (1 <= 0 /\ v1 > 0) -v2+m > 0 [0]: montonic decrease yields 1-n9-v2+m > 0 -v2+m > 0 [1]: eventual increase yields (1 <= 0 /\ -v2+m > 0) Replacement map: {v1 > 0 -> 1-n9+v1 > 0, -v2+m > 0 -> 1-n9-v2+m > 0} Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)] Blocked [{}, {16[T]}, {20[T]}, {26[T]}] Step with 20 Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 20[(v1 <= 0)] Blocked [{}, {16[T]}, {20[T]}, {26[T]}, {}] Backtrack Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}] Step with 5 Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {}] Step with 25 Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)], 25[(v2-m < 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {}, {}] Step with 13 Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)], 25[(v2-m < 0)], 13[T] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {}, {}, {}] Covered Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)], 25[(v2-m < 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {}, {13[T]}] Backtrack Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {25[T]}] Step with 24 Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)], 24[(v2-m >= 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {25[T]}, {}] Step with 13 Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)], 24[(v2-m >= 0)], 13[T] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {25[T]}, {}, {}] Accelerate and Drop Start location: [1] Program variables: m n v1 v2 17: [1] -> [3] : m'=nondet1, n'=nondet, T, cost: 1 16: [3] -> [4] : (m <= 0 \/ n < 0), cost: 1 19: [3] -> [7] : v1'=n, v2'=0, (m > 0 /\ n >= 0), cost: 1 5: [7] -> [8] : v1 > 0, cost: 1 20: [7] -> [4] : v1 <= 0, cost: 1 26: [7] -> [7] : v1'=-n9+v1, v2'=n9+v2, (1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0), cost: 1 27: [7] -> LoAT_sink : (v1 > 0 /\ v2 <= 0 /\ v2-m >= 0), cost: NONTERM 24: [8] -> [9] : v2'=0, v2-m >= 0, cost: 1 25: [8] -> [9] : v1'=-1+v1, v2'=1+v2, v2-m < 0, cost: 1 13: [9] -> [7] : T, cost: 1 Certificate of Non-Termination Original rule: [7] -> [7] : v2'=0, (v1 > 0 /\ v2-m >= 0), cost: 1 New rule: [7] -> LoAT_sink : (v1 > 0 /\ v2 <= 0 /\ v2-m >= 0), cost: NONTERM v1 > 0 [0]: monotonic increase yields v1 > 0 v2-m >= 0 [0]: eventual decrease yields (v2-m >= 0 /\ -m >= 0) v2-m >= 0 [1]: eventual increase yields (v2 <= 0 /\ v2-m >= 0) Replacement map: {v1 > 0 -> v1 > 0, v2-m >= 0 -> (v2 <= 0 /\ v2-m >= 0)} Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}] Step with 5 Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {}] Step with 24 Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)], 24[(v2-m >= 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {}, {}] Step with 13 Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)], 24[(v2-m >= 0)], 13[T] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {}, {}, {}] Covered Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)], 24[(v2-m >= 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {}, {13[T]}] Backtrack Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {24[T]}] Step with 25 Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)], 25[(v2-m < 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {24[T]}, {}] Step with 13 Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)], 25[(v2-m < 0)], 13[T] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {24[T]}, {}, {}] Covered Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)], 25[(v2-m < 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {24[T]}, {13[T]}] Backtrack Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)], 5[(v1 > 0)] Blocked [{}, {16[T]}, {20[T]}, {20[T], 26[T]}, {24[T], 25[T]}] Backtrack Trace 17[T], 19[(m > 0 /\ n >= 0)], 26[(1-n9+v1 > 0 /\ -1+n9 >= 0 /\ 1-n9-v2+m > 0)] Blocked [{}, {16[T]}, {20[T]}, {5[T], 20[T], 26[T]}] Backtrack Trace 17[T], 19[(m > 0 /\ n >= 0)] Blocked [{}, {16[T]}, {20[T], 26[T]}] Step with 5 Trace 17[T], 19[(m > 0 /\ n >= 0)], 5[(v1 > 0)] Blocked [{}, {16[T]}, {20[T], 26[T]}, {}] Step with 25 Trace 17[T], 19[(m > 0 /\ n >= 0)], 5[(v1 > 0)], 25[(v2-m < 0)] Blocked [{}, {16[T]}, {20[T], 26[T]}, {}, {}] Step with 13 Trace 17[T], 19[(m > 0 /\ n >= 0)], 5[(v1 > 0)], 25[(v2-m < 0)], 13[T] Blocked [{}, {16[T]}, {20[T], 26[T]}, {}, {}, {}] Covered Trace 17[T], 19[(m > 0 /\ n >= 0)], 5[(v1 > 0)], 25[(v2-m < 0)] Blocked [{}, {16[T]}, {20[T], 26[T]}, {}, {13[T]}] Backtrack Trace 17[T], 19[(m > 0 /\ n >= 0)], 5[(v1 > 0)] Blocked [{}, {16[T]}, {20[T], 26[T]}, {25[T]}] Backtrack Trace 17[T], 19[(m > 0 /\ n >= 0)] Blocked [{}, {16[T]}, {5[T], 20[T], 26[T]}] Backtrack Trace 17[T] Blocked [{}, {16[T], 19[T]}] Backtrack Trace Blocked [{17[T]}] Accept unknown Build SHA: a05f16bf13df659c382799650051f91bf6828c7b