NO Initial ITS Start location: [1] Program variables: x y 0: [1] -> [2] : x'=nondet, T, cost: 1 1: [2] -> [3] : y'=nondet1, T, cost: 1 2: [3] -> [5] : -1+y+x > 0, cost: 1 9: [3] -> [4] : -1+y+x <= 0, cost: 1 3: [5] -> [6] : x > 0, cost: 1 7: [5] -> [9] : x <= 0, cost: 1 4: [6] -> [7] : x'=y+2*x, T, cost: 1 5: [7] -> [8] : y'=-1+y, T, cost: 1 6: [8] -> [5] : T, cost: 1 8: [9] -> [4] : T, cost: 1 Chained Linear Paths Start location: [1] Program variables: x y 10: [1] -> [3] : x'=nondet, y'=nondet1, T, cost: 1 2: [3] -> [5] : -1+y+x > 0, cost: 1 9: [3] -> [4] : -1+y+x <= 0, cost: 1 12: [5] -> [4] : x <= 0, cost: 1 14: [5] -> [5] : x'=y+2*x, y'=-1+y, x > 0, 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 [6] by chaining: Applied chaining First rule: [5] -> [6] : x > 0, cost: 1 Second rule: [6] -> [7] : x'=y+2*x, T, cost: 1 New rule: [5] -> [7] : x'=y+2*x, x > 0, cost: 1 Applied deletion Removed the following rules: 3 4 Eliminating location [9] by chaining: Applied chaining First rule: [5] -> [9] : x <= 0, cost: 1 Second rule: [9] -> [4] : T, cost: 1 New rule: [5] -> [4] : x <= 0, cost: 1 Applied deletion Removed the following rules: 7 8 Eliminating location [7] by chaining: Applied chaining First rule: [5] -> [7] : x'=y+2*x, x > 0, cost: 1 Second rule: [7] -> [8] : y'=-1+y, T, cost: 1 New rule: [5] -> [8] : x'=y+2*x, y'=-1+y, x > 0, cost: 1 Applied deletion Removed the following rules: 5 11 Eliminating location [8] by chaining: Applied chaining First rule: [5] -> [8] : x'=y+2*x, y'=-1+y, x > 0, cost: 1 Second rule: [8] -> [5] : T, cost: 1 New rule: [5] -> [5] : x'=y+2*x, y'=-1+y, x > 0, cost: 1 Applied deletion Removed the following rules: 6 13 Step with 10 Trace 10[T] Blocked [{}, {}] Step with 2 Trace 10[T], 2[(-1+y+x > 0)] Blocked [{}, {}, {}] Step with 12 Trace 10[T], 2[(-1+y+x > 0)], 12[(x <= 0)] Blocked [{}, {}, {}, {}] Backtrack Trace 10[T], 2[(-1+y+x > 0)] Blocked [{}, {}, {12[T]}] Step with 14 Trace 10[T], 2[(-1+y+x > 0)], 14[(x > 0)] Blocked [{}, {}, {12[T]}, {}] Nonterm Start location: [1] Program variables: x y 10: [1] -> [3] : x'=nondet, y'=nondet1, T, cost: 1 2: [3] -> [5] : -1+y+x > 0, cost: 1 9: [3] -> [4] : -1+y+x <= 0, cost: 1 12: [5] -> [4] : x <= 0, cost: 1 14: [5] -> [5] : x'=y+2*x, y'=-1+y, x > 0, cost: 1 15: [5] -> LoAT_sink : (-y-x < 0 /\ x > 0), cost: NONTERM Certificate of Non-Termination Original rule: [5] -> [5] : x'=y+2*x, y'=-1+y, (x > 0), cost: 1 New rule: [5] -> LoAT_sink : (-y-x < 0 /\ x > 0), cost: NONTERM x > 0 [0]: eventual decrease yields (-2^(-1+n)+n+2^(-1+n)*x+2^(-1+n)*y-y > 0 /\ x > 0) x > 0 [1]: eventual increase yields (-y-x < 0 /\ x > 0) Replacement map: {x > 0 -> (-y-x < 0 /\ x > 0)} Step with 15 Trace 10[T], 2[(-1+y+x > 0)], 15[(-y-x < 0 /\ x > 0)] Blocked [{}, {}, {12[T]}, {15[T]}] Refute Counterexample [ x=1 y=1 ] 10 [ x=1 y=1 ] 2 [ x=x y=y ] 15 NO Build SHA: a05f16bf13df659c382799650051f91bf6828c7b