| n ≤ n0, j ≤ 2 ^ n→i(m * n - 1) ⊦ m = 0, n = 0, j ≤ 2 ^ n→i(m * n0 - 1), j ≤ 2 ^ n→i(m * n - 1) ∧ n→i(m * n - 1) ≤ n→i(m * n0 - 1) ∧ 0 ≤ n→i(m * n - 1) |
2 ^ n→i(m * n0 - 1) < 2 ^ n→i(m * n - 1), (m * n0 - 1) + 1 < m * n, 2 ^ n→i(m * n0 - 1) < j, n ≤ n0, j ≤ 2 ^ n→i(m * n - 1) ⊦ m = 0, n = 0
Used simplifier rules: forward-lsle: ⊦ i < j ∧ j ≤ j0 → i < j0; (forward) from specification int-abs%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ 0 ≤ n→i(n); (s)%n0 ≤ n ⊦ n - n0 ≤ m ↔ n ≤ m + n0; (s)%mult-c: ⊦ m * n = n * m; from specification nat-mult%mult-a: ⊦ m0 * m * n = (m0 * m) * n; from specification nat-mult% ⊦ m0 * m = 0 ↔ m0 = 0 ∨ m = 0; (ws)% ⊦ m < 1 ↔ m = 0; (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)% ⊦ n→i(m) ≤ n→i(n) ↔ m ≤ n; (s)% ⊦ i ≤ j ↔ ¬ j < i; (ss)