| n - 1 < m ∧ 8 ≤ 8 ∧ n0 < 8 ∧ 0 < 8 → ¬ m * 8 + n0 ≤ (n - 1) * 8 + 0, # bits = m * 8 + n0, n ≤ m + 1, m * 8 + n0 ≤ 8 * (n - 1), n0 < 8 ⊦ bits = [], n = 0, fix(n, bits2bytes(bits)) = bits2bytes(fillsgn(n * 8, bits)), n0 = 0 |
# bits = m * 8 + n0, n0 < 8, # bits ≤ 8 * m ⊦ bits = [], n0 = 0, fix(m + 1, bits2bytes(bits)) = bits2bytes(fillsgn(8 * m + 8, bits))
Used simplifier rules: ⊦ n ≤ m → m + n0 - n = (m - n) + n0;% ⊦ m ≤ m;% ⊦ m + n ≤ m + n0 ↔ n ≤ n0;% ⊦ m0 * m * n = (m0 * m) * n;% ⊦ m * (n + 1) = m * n + m;% ⊦ m + 1 ≠ 0;% ⊦ m < n → n ≠ 0; (forward)% ⊦ m < n ∧ n = n0 → m < n0; (forward)% ⊦ m = n + 1 ∧ n < n0 → m ≤ n0; (forward)% ⊦ m < n → (n ≤ m + 1 ↔ n = m + 1);% ⊦ m < n → n ≠ 0;% ⊦ m ≤ n → (n < m ↔ false);% ⊦ m * n = n * m;% ⊦ 0 + m = m;% ⊦ m < n → (n ≤ m ↔ false);% ⊦ ¬ m < n ↔ n ≤ m;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m < n + 1 ↔ ¬ n < m;%n0 ≤ n ⊦ n - n0 < m ↔ n < m + n0;% ⊦ ¬ m ≤ n ↔ n < m;% ⊦ m < 1 ↔ m = 0;