NO Initial ITS Start location: [1] Program variables: i w 0: [1] -> [2] : i'=nondet, T, cost: 1 1: [2] -> [3] : w'=5, T, cost: 1 2: [3] -> [4] : (i < 0 \/ i > 0), cost: 1 18: [3] -> [17] : (i <= 0 /\ i >= 0), cost: 1 3: [4] -> [6] : w+i < 0, cost: 1 7: [4] -> [9] : w+i >= 0, cost: 1 16: [5] -> [16] : w'=1+w, T, cost: 1 4: [6] -> [7] : i'=-1+i, T, cost: 1 5: [7] -> [8] : i'=-i, T, cost: 1 6: [8] -> [5] : T, cost: 1 8: [9] -> [11] : -w+i > 0, cost: 1 12: [9] -> [14] : -w+i <= 0, cost: 1 15: [10] -> [5] : T, cost: 1 9: [11] -> [12] : i'=1+i, T, cost: 1 10: [12] -> [13] : i'=-i, T, cost: 1 11: [13] -> [10] : T, cost: 1 13: [14] -> [15] : i'=0, T, cost: 1 14: [15] -> [10] : T, cost: 1 17: [16] -> [3] : T, cost: 1 Chained Linear Paths Start location: [1] Program variables: i w 19: [1] -> [3] : i'=nondet, w'=5, T, cost: 1 2: [3] -> [4] : (i < 0 \/ i > 0), cost: 1 18: [3] -> [17] : (i <= 0 /\ i >= 0), cost: 1 7: [4] -> [9] : w+i >= 0, cost: 1 22: [4] -> [5] : i'=1-i, w+i < 0, cost: 1 23: [5] -> [3] : w'=1+w, T, cost: 1 27: [9] -> [10] : i'=0, -w+i <= 0, cost: 1 28: [9] -> [10] : i'=-1-i, -w+i > 0, cost: 1 15: [10] -> [5] : T, cost: 1 Eliminating location [2] by chaining: Applied chaining First rule: [1] -> [2] : i'=nondet, T, cost: 1 Second rule: [2] -> [3] : w'=5, T, cost: 1 New rule: [1] -> [3] : i'=nondet, w'=5, T, cost: 1 Applied deletion Removed the following rules: 0 1 Eliminating location [6] by chaining: Applied chaining First rule: [4] -> [6] : w+i < 0, cost: 1 Second rule: [6] -> [7] : i'=-1+i, T, cost: 1 New rule: [4] -> [7] : i'=-1+i, w+i < 0, cost: 1 Applied deletion Removed the following rules: 3 4 Eliminating location [7] by chaining: Applied chaining First rule: [4] -> [7] : i'=-1+i, w+i < 0, cost: 1 Second rule: [7] -> [8] : i'=-i, T, cost: 1 New rule: [4] -> [8] : i'=1-i, w+i < 0, cost: 1 Applied deletion Removed the following rules: 5 20 Eliminating location [8] by chaining: Applied chaining First rule: [4] -> [8] : i'=1-i, w+i < 0, cost: 1 Second rule: [8] -> [5] : T, cost: 1 New rule: [4] -> [5] : i'=1-i, w+i < 0, cost: 1 Applied deletion Removed the following rules: 6 21 Eliminating location [16] by chaining: Applied chaining First rule: [5] -> [16] : w'=1+w, T, cost: 1 Second rule: [16] -> [3] : T, cost: 1 New rule: [5] -> [3] : w'=1+w, T, cost: 1 Applied deletion Removed the following rules: 16 17 Eliminating location [11] by chaining: Applied chaining First rule: [9] -> [11] : -w+i > 0, cost: 1 Second rule: [11] -> [12] : i'=1+i, T, cost: 1 New rule: [9] -> [12] : i'=1+i, -w+i > 0, cost: 1 Applied deletion Removed the following rules: 8 9 Eliminating location [14] by chaining: Applied chaining First rule: [9] -> [14] : -w+i <= 0, cost: 1 Second rule: [14] -> [15] : i'=0, T, cost: 1 New rule: [9] -> [15] : i'=0, -w+i <= 0, cost: 1 Applied deletion Removed the following rules: 12 13 Eliminating location [12] by chaining: Applied chaining First rule: [9] -> [12] : i'=1+i, -w+i > 0, cost: 1 Second rule: [12] -> [13] : i'=-i, T, cost: 1 New rule: [9] -> [13] : i'=-1-i, -w+i > 0, cost: 1 Applied deletion Removed the following rules: 10 24 Eliminating location [15] by chaining: Applied chaining First rule: [9] -> [15] : i'=0, -w+i <= 0, cost: 1 Second rule: [15] -> [10] : T, cost: 1 New rule: [9] -> [10] : i'=0, -w+i <= 0, cost: 1 Applied deletion Removed the following rules: 14 25 Eliminating location [13] by chaining: Applied chaining First rule: [9] -> [13] : i'=-1-i, -w+i > 0, cost: 1 Second rule: [13] -> [10] : T, cost: 1 New rule: [9] -> [10] : i'=-1-i, -w+i > 0, cost: 1 Applied deletion Removed the following rules: 11 26 Step with 19 Trace 19[T] Blocked [{}, {}] Step with 18 Trace 19[T], 18[(i <= 0 /\ i >= 0)] Blocked [{}, {}, {}] Backtrack Trace 19[T] Blocked [{}, {18[T]}] Step with 2 Trace 19[T], 2[(i > 0)] Blocked [{}, {18[T]}, {}] Step with 7 Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)] Blocked [{}, {18[T]}, {}, {}] Step with 27 Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 27[(-w+i <= 0)] Blocked [{}, {18[T]}, {}, {}, {}] Step with 15 Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 27[(-w+i <= 0)], 15[T] Blocked [{}, {18[T]}, {}, {}, {}, {}] Step with 23 Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 27[(-w+i <= 0)], 15[T], 23[T] Blocked [{}, {18[T]}, {}, {}, {}, {}, {}] Acceleration Failed marked recursive suffix as redundant Step with 18 Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 27[(-w+i <= 0)], 15[T], 23[T], 18[(i <= 0 /\ i >= 0)] Blocked [{}, {18[T]}, {}, {}, {}, {}, {2[T]}, {}] Backtrack Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 27[(-w+i <= 0)], 15[T], 23[T] Blocked [{}, {18[T]}, {}, {}, {}, {}, {2[T], 18[T]}] Backtrack Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 27[(-w+i <= 0)], 15[T] Blocked [{}, {18[T]}, {}, {}, {}, {23[T]}] Backtrack Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 27[(-w+i <= 0)] Blocked [{}, {18[T]}, {}, {}, {15[T]}] Backtrack Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)] Blocked [{}, {18[T]}, {}, {27[T]}] Step with 28 Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 28[(-w+i > 0)] Blocked [{}, {18[T]}, {}, {27[T]}, {}] Step with 15 Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 28[(-w+i > 0)], 15[T] Blocked [{}, {18[T]}, {}, {27[T]}, {}, {}] Step with 23 Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 28[(-w+i > 0)], 15[T], 23[T] Blocked [{}, {18[T]}, {}, {27[T]}, {}, {}, {}] Acceleration Failed marked recursive suffix as redundant Step with 2 Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 28[(-w+i > 0)], 15[T], 23[T], 2[(i < 0)] Blocked [{}, {18[T]}, {}, {27[T]}, {}, {}, {18[T]}, {}] Acceleration Failed marked recursive suffix as redundant Step with 22 Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 28[(-w+i > 0)], 15[T], 23[T], 2[(i < 0)], 22[(w+i < 0)] Blocked [{}, {18[T]}, {}, {27[T]}, {}, {}, {18[T]}, {7[T]}, {}] Acceleration Failed marked recursive suffix as redundant Step with 23 Trace 19[T], 2[(i > 0)], 7[(w+i >= 0)], 28[(-w+i > 0)], 15[T], 23[T], 2[(i < 0)], 22[(w+i < 0)], 23[T] Blocked [{}, {18[T]}, {}, {27[T]}, {}, {}, {18[T]}, {7[T]}, {}, {}] Acceleration Failed marked recursive suffix as redundant Nonterm Start location: [1] Program variables: i w 19: [1] -> [3] : i'=nondet, w'=5, T, cost: 1 2: [3] -> [4] : (i < 0 \/ i > 0), cost: 1 18: [3] -> [17] : (i <= 0 /\ i >= 0), cost: 1 29: [3] -> LoAT_sink : (w+i >= 0 /\ 1+i > 0 /\ -1+n >= 0 /\ -w+i > 0 /\ i > 0), cost: NONTERM 30: [3] -> [3] : i'=2*n+i, w'=2*n+w, (w+i >= 0 /\ 1+i > 0 /\ -1+n >= 0 /\ -w+i > 0 /\ i > 0), cost: 1 7: [4] -> [9] : w+i >= 0, cost: 1 22: [4] -> [5] : i'=1-i, w+i < 0, cost: 1 23: [5] -> [3] : w'=1+w, T, cost: 1 27: [9] -> [10] : i'=0, -w+i <= 0, cost: 1 28: [9] -> [10] : i'=-1-i, -w+i > 0, cost: 1 15: [10] -> [5] : T, cost: 1 Certificate of Non-Termination Original rule: [3] -> [3] : i'=2+i, w'=2+w, (w+i >= 0 /\ -1-i < 0 /\ -w+i > 0 /\ w-i < 0 /\ i > 0), cost: 1 New rule: [3] -> LoAT_sink : (w+i >= 0 /\ 1+i > 0 /\ -1+n >= 0 /\ -w+i > 0 /\ i > 0), cost: NONTERM w+i >= 0 [0]: monotonic increase yields w+i >= 0 1+i > 0 [0]: monotonic increase yields 1+i > 0 -w+i > 0 [0]: monotonic increase yields -w+i > 0 i > 0 [0]: monotonic increase yields i > 0, dependencies: 1+i > 0 Replacement map: {w+i >= 0 -> w+i >= 0, 1+i > 0 -> 1+i > 0, -w+i > 0 -> -w+i > 0, i > 0 -> i > 0} Loop Acceleration Original rule: [3] -> [3] : i'=2+i, w'=2+w, (w+i >= 0 /\ -1-i < 0 /\ -w+i > 0 /\ w-i < 0 /\ i > 0), cost: 1 New rule: [3] -> [3] : i'=2*n+i, w'=2*n+w, (w+i >= 0 /\ 1+i > 0 /\ -1+n >= 0 /\ -w+i > 0 /\ i > 0), cost: 1 w+i >= 0 [0]: monotonic increase yields w+i >= 0 1+i > 0 [0]: monotonic increase yields 1+i > 0 -w+i > 0 [0]: monotonic increase yields -w+i > 0 i > 0 [0]: monotonic increase yields i > 0, dependencies: 1+i > 0 Replacement map: {w+i >= 0 -> w+i >= 0, 1+i > 0 -> 1+i > 0, -w+i > 0 -> -w+i > 0, i > 0 -> i > 0} Step with 29 Trace 19[T], 29[(w+i >= 0 /\ 1+i > 0 /\ -1+n >= 0 /\ -w+i > 0 /\ i > 0)] Blocked [{}, {18[T]}, {29[T]}] Refute Counterexample [ i=6 w=5 ] 19 [ i=i w=w ] 29 NO Build SHA: a05f16bf13df659c382799650051f91bf6828c7b