unknown Initial ITS Start location: [1] Program variables: min res x y 0: [1] -> [2] : x'=nondet, T, cost: 1 1: [2] -> [3] : y'=nondet1, T, cost: 1 2: [3] -> [4] : res'=0, T, cost: 1 3: [4] -> [6] : -y+x < 0, cost: 1 6: [4] -> [8] : -y+x >= 0, cost: 1 9: [5] -> [10] : min-y == 0, cost: 1 19: [5] -> [18] : (min-y < 0 \/ min-y > 0), cost: 1 4: [6] -> [7] : min'=x, T, cost: 1 5: [7] -> [5] : T, cost: 1 7: [8] -> [9] : min'=y, T, cost: 1 8: [9] -> [5] : T, cost: 1 10: [10] -> [11] : y'=1+y, T, cost: 1 11: [11] -> [12] : res'=1+res, T, cost: 1 12: [12] -> [14] : -y+x < 0, cost: 1 15: [12] -> [16] : -y+x >= 0, cost: 1 18: [13] -> [5] : T, cost: 1 13: [14] -> [15] : min'=x, T, cost: 1 14: [15] -> [13] : T, cost: 1 16: [16] -> [17] : min'=y, T, cost: 1 17: [17] -> [13] : T, cost: 1 Chained Linear Paths Start location: [1] Program variables: min res x y 21: [1] -> [4] : res'=0, x'=nondet, y'=nondet1, T, cost: 1 24: [4] -> [5] : min'=x, -y+x < 0, cost: 1 25: [4] -> [5] : min'=y, -y+x >= 0, cost: 1 19: [5] -> [18] : (min-y < 0 \/ min-y > 0), cost: 1 27: [5] -> [12] : res'=1+res, y'=1+y, min-y == 0, cost: 1 30: [12] -> [13] : min'=x, -y+x < 0, cost: 1 31: [12] -> [13] : min'=y, -y+x >= 0, cost: 1 18: [13] -> [5] : T, cost: 1 Eliminating location [2] by chaining: Applied chaining First rule: [1] -> [2] : x'=nondet, T, cost: 1 Second rule: [2] -> [3] : y'=nondet1, T, cost: 1 New rule: [1] -> [3] : x'=nondet, y'=nondet1, T, cost: 1 Applied deletion Removed the following rules: 0 1 Eliminating location [3] by chaining: Applied chaining First rule: [1] -> [3] : x'=nondet, y'=nondet1, T, cost: 1 Second rule: [3] -> [4] : res'=0, T, cost: 1 New rule: [1] -> [4] : res'=0, x'=nondet, y'=nondet1, T, cost: 1 Applied deletion Removed the following rules: 2 20 Eliminating location [6] by chaining: Applied chaining First rule: [4] -> [6] : -y+x < 0, cost: 1 Second rule: [6] -> [7] : min'=x, T, cost: 1 New rule: [4] -> [7] : min'=x, -y+x < 0, cost: 1 Applied deletion Removed the following rules: 3 4 Eliminating location [8] by chaining: Applied chaining First rule: [4] -> [8] : -y+x >= 0, cost: 1 Second rule: [8] -> [9] : min'=y, T, cost: 1 New rule: [4] -> [9] : min'=y, -y+x >= 0, cost: 1 Applied deletion Removed the following rules: 6 7 Eliminating location [7] by chaining: Applied chaining First rule: [4] -> [7] : min'=x, -y+x < 0, cost: 1 Second rule: [7] -> [5] : T, cost: 1 New rule: [4] -> [5] : min'=x, -y+x < 0, cost: 1 Applied deletion Removed the following rules: 5 22 Eliminating location [9] by chaining: Applied chaining First rule: [4] -> [9] : min'=y, -y+x >= 0, cost: 1 Second rule: [9] -> [5] : T, cost: 1 New rule: [4] -> [5] : min'=y, -y+x >= 0, cost: 1 Applied deletion Removed the following rules: 8 23 Eliminating location [10] by chaining: Applied chaining First rule: [5] -> [10] : min-y == 0, cost: 1 Second rule: [10] -> [11] : y'=1+y, T, cost: 1 New rule: [5] -> [11] : y'=1+y, min-y == 0, cost: 1 Applied deletion Removed the following rules: 9 10 Eliminating location [11] by chaining: Applied chaining First rule: [5] -> [11] : y'=1+y, min-y == 0, cost: 1 Second rule: [11] -> [12] : res'=1+res, T, cost: 1 New rule: [5] -> [12] : res'=1+res, y'=1+y, min-y == 0, cost: 1 Applied deletion Removed the following rules: 11 26 Eliminating location [14] by chaining: Applied chaining First rule: [12] -> [14] : -y+x < 0, cost: 1 Second rule: [14] -> [15] : min'=x, T, cost: 1 New rule: [12] -> [15] : min'=x, -y+x < 0, cost: 1 Applied deletion Removed the following rules: 12 13 Eliminating location [16] by chaining: Applied chaining First rule: [12] -> [16] : -y+x >= 0, cost: 1 Second rule: [16] -> [17] : min'=y, T, cost: 1 New rule: [12] -> [17] : min'=y, -y+x >= 0, cost: 1 Applied deletion Removed the following rules: 15 16 Eliminating location [15] by chaining: Applied chaining First rule: [12] -> [15] : min'=x, -y+x < 0, cost: 1 Second rule: [15] -> [13] : T, cost: 1 New rule: [12] -> [13] : min'=x, -y+x < 0, cost: 1 Applied deletion Removed the following rules: 14 28 Eliminating location [17] by chaining: Applied chaining First rule: [12] -> [17] : min'=y, -y+x >= 0, cost: 1 Second rule: [17] -> [13] : T, cost: 1 New rule: [12] -> [13] : min'=y, -y+x >= 0, cost: 1 Applied deletion Removed the following rules: 17 29 Step with 21 Trace 21[T] Blocked [{}, {}] Step with 24 Trace 21[T], 24[(-y+x < 0)] Blocked [{}, {}, {}] Step with 19 Trace 21[T], 24[(-y+x < 0)], 19[(min-y < 0)] Blocked [{}, {}, {}, {}] Backtrack Trace 21[T], 24[(-y+x < 0)] Blocked [{}, {}, {19[min-y < 0]}] Backtrack Trace 21[T] Blocked [{}, {24[T]}] Step with 25 Trace 21[T], 25[(-y+x >= 0)] Blocked [{}, {24[T]}, {}] Step with 27 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)] Blocked [{}, {24[T]}, {19[T]}, {}] Step with 30 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)] Blocked [{}, {24[T]}, {19[T]}, {}, {}] Step with 18 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)], 18[T] Blocked [{}, {24[T]}, {19[T]}, {}, {}, {}] Acceleration Failed marked recursive suffix as redundant Step with 19 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)], 18[T], 19[(min-y < 0)] Blocked [{}, {24[T]}, {19[T]}, {}, {}, {27[T]}, {}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)], 18[T] Blocked [{}, {24[T]}, {19[T]}, {}, {}, {19[min-y < 0], 27[T]}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)] Blocked [{}, {24[T]}, {19[T]}, {}, {18[T]}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)] Blocked [{}, {24[T]}, {19[T]}, {30[T]}] Step with 31 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 31[(-y+x >= 0)] Blocked [{}, {24[T]}, {19[T]}, {30[T]}, {}] Step with 18 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 31[(-y+x >= 0)], 18[T] Blocked [{}, {24[T]}, {19[T]}, {30[T]}, {}, {}] Accelerate Start location: [1] Program variables: min res x y 21: [1] -> [4] : res'=0, x'=nondet, y'=nondet1, T, cost: 1 24: [4] -> [5] : min'=x, -y+x < 0, cost: 1 25: [4] -> [5] : min'=y, -y+x >= 0, cost: 1 19: [5] -> [18] : (min-y < 0 \/ min-y > 0), cost: 1 27: [5] -> [12] : res'=1+res, y'=1+y, min-y == 0, cost: 1 32: [5] -> [5] : min'=n+y, res'=res+n, y'=n+y, (-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0), cost: 1 30: [12] -> [13] : min'=x, -y+x < 0, cost: 1 31: [12] -> [13] : min'=y, -y+x >= 0, cost: 1 18: [13] -> [5] : T, cost: 1 Loop Acceleration Original rule: [5] -> [5] : min'=1+y, res'=1+res, y'=1+y, (-1-y+x >= 0 /\ min-y == 0), cost: 1 New rule: [5] -> [5] : min'=n+y, res'=res+n, y'=n+y, (-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0), cost: 1 -1-y+x >= 0 [0]: montonic decrease yields -n-y+x >= 0 -1-y+x >= 0 [1]: eventual increase yields (1 <= 0 /\ -1-y+x >= 0) min-y >= 0 [0]: monotonic increase yields min-y >= 0 -min+y >= 0 [0]: monotonic increase yields -min+y >= 0 Replacement map: {-1-y+x >= 0 -> -n-y+x >= 0, min-y >= 0 -> min-y >= 0, -min+y >= 0 -> -min+y >= 0} Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)] Blocked [{}, {24[T]}, {19[T]}, {32[T]}] Step with 27 Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)], 27[(min-y == 0)] Blocked [{}, {24[T]}, {19[T]}, {19[T], 32[T]}, {}] Step with 31 Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)], 27[(min-y == 0)], 31[(-y+x >= 0)] Blocked [{}, {24[T]}, {19[T]}, {19[T], 32[T]}, {}, {}] Step with 18 Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)], 27[(min-y == 0)], 31[(-y+x >= 0)], 18[T] Blocked [{}, {24[T]}, {19[T]}, {19[T], 32[T]}, {}, {}, {}] Covered Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)], 27[(min-y == 0)], 31[(-y+x >= 0)] Blocked [{}, {24[T]}, {19[T]}, {19[T], 32[T]}, {}, {18[T]}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)], 27[(min-y == 0)] Blocked [{}, {24[T]}, {19[T]}, {19[T], 32[T]}, {31[T]}] Step with 30 Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)] Blocked [{}, {24[T]}, {19[T]}, {19[T], 32[T]}, {31[T]}, {}] Step with 18 Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)], 18[T] Blocked [{}, {24[T]}, {19[T]}, {19[T], 32[T]}, {31[T]}, {}, {}] Acceleration Failed marked recursive suffix as redundant Step with 19 Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)], 18[T], 19[(min-y < 0)] Blocked [{}, {24[T]}, {19[T]}, {19[T], 32[T]}, {31[T]}, {}, {27[T], 32[T]}, {}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)], 18[T] Blocked [{}, {24[T]}, {19[T]}, {19[T], 32[T]}, {31[T]}, {}, {19[min-y < 0], 27[T], 32[T]}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)] Blocked [{}, {24[T]}, {19[T]}, {19[T], 32[T]}, {31[T]}, {18[T]}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)], 27[(min-y == 0)] Blocked [{}, {24[T]}, {19[T]}, {19[T], 32[T]}, {30[T], 31[T]}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 32[(-1+n >= 0 /\ min-y >= 0 /\ -n-y+x >= 0 /\ -min+y >= 0)] Blocked [{}, {24[T]}, {19[T]}, {19[T], 27[T], 32[T]}] Backtrack Trace 21[T], 25[(-y+x >= 0)] Blocked [{}, {24[T]}, {19[T], 32[T]}] Step with 27 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)] Blocked [{}, {24[T]}, {19[T], 32[T]}, {}] Step with 30 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)] Blocked [{}, {24[T]}, {19[T], 32[T]}, {}, {}] Step with 18 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)], 18[T] Blocked [{}, {24[T]}, {19[T], 32[T]}, {}, {}, {}] Step with 19 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)], 18[T], 19[(min-y < 0)] Blocked [{}, {24[T]}, {19[T], 32[T]}, {}, {}, {27[T], 32[T]}, {}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)], 18[T] Blocked [{}, {24[T]}, {19[T], 32[T]}, {}, {}, {19[min-y < 0], 27[T], 32[T]}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 30[(-y+x < 0)] Blocked [{}, {24[T]}, {19[T], 32[T]}, {}, {18[T]}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)] Blocked [{}, {24[T]}, {19[T], 32[T]}, {30[T]}] Step with 31 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 31[(-y+x >= 0)] Blocked [{}, {24[T]}, {19[T], 32[T]}, {30[T]}, {}] Step with 18 Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 31[(-y+x >= 0)], 18[T] Blocked [{}, {24[T]}, {19[T], 32[T]}, {30[T]}, {}, {}] Covered Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)], 31[(-y+x >= 0)] Blocked [{}, {24[T]}, {19[T], 32[T]}, {30[T]}, {18[T]}] Backtrack Trace 21[T], 25[(-y+x >= 0)], 27[(min-y == 0)] Blocked [{}, {24[T]}, {19[T], 32[T]}, {30[T], 31[T]}] Backtrack Trace 21[T], 25[(-y+x >= 0)] Blocked [{}, {24[T]}, {19[T], 27[T], 32[T]}] Backtrack Trace 21[T] Blocked [{}, {24[T], 25[T]}] Backtrack Trace Blocked [{21[T]}] Accept unknown Build SHA: a05f16bf13df659c382799650051f91bf6828c7b