| ¬(n0 < 8 ∧ n ≤ m ∧ n0 ≠ 0), # bits = 8 * m + n0, n ≤ m + 1, 8 * m + n0 ≤ 8 * n, n0 < 8 ⊦ n = 0, bits = [], fix(n, bits2bytes(bits)) = bits2bytes(mklist(bits.first, n * 8 - 8 * m + n0) + bits), n0 = 0 |
# bits = 8 * m + n0, n0 < 8, # bits ≤ 8 * m + 8 ⊦ bits = [], n0 = 0, fix(m + 1, bits2bytes(bits)) = bits2bytes(mklist(bits.first, 8 * m + 8 - # bits) + bits)
Used simplifier rules: ⊦ m ≤ m;% ⊦ m < n + 1 ↔ ¬ n < m;% ⊦ m + n ≤ m + n0 ↔ n ≤ n0;% ⊦ m * n = n * m;% ⊦ 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;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m < n → (n ≤ m + 1 ↔ n = m + 1);% ⊦ m < n → n ≠ 0;% ⊦ ¬ m ≤ n ↔ n < m;% ⊦ m < n → (n ≤ m ↔ false);% ⊦ ¬ m < n ↔ n ≤ m;