| ((8 - n) + m * 8 + n) % 8 = 0, # bits = m * 8 + n, n < (8 - n) + m * 8 + n, 8 < (8 - n) + m * 8 + n, m * 8 + n ≤ 8, n < 8, n + 1 < (8 - n) + m * 8 + n ⊦ bits = [], n = 0, i2b(bits2int(bits)) ' = bits2bytes(firstn(8, mklist(bits.first, 8 - n) + bits)) + bits2bytes(restn(n, bits)), 8 + m * 8 + n = n |
⊦ n ≤ n0 → (m + (n0 - n)) + n = m + n0
n ≤ 8, (m * 8 + 8) % 8 = 0, # bits = m * 8 + n, n < m * 8 + 8, 8 < m * 8 + 8, m * 8 + n ≤ 8, n < 8, n + 1 < m * 8 + 8 ⊦ bits = [], n = 0, i2b(bits2int(bits)) ' = bits2bytes(firstn(8, mklist(bits.first, 8 - n) + bits)) + bits2bytes(restn(n, bits)), 8 + m * 8 + n = n
Used simplifier rules: ⊦ n < m → (m - n) + n = m;%n ≠ 0 ⊦ (m + n0 * n) % n = m % n;% ⊦ m0 * m * n = (m0 * m) * n;% ⊦ m = m + n ↔ n = 0;%n < n0 ⊦ (* n) ≠ m0 + (* n0);% ⊦ m < m + n ↔ n ≠ 0;% ⊦ m0 * m = 0 ↔ m0 = 0 ∨ m = 0;%n < n0 ⊦ m + (* n) < m0 + (* n0) ↔ m < m0 + (n0 - n);% ⊦ ¬ m ≤ n ↔ n < m;% ⊦ m < n → ¬ n < m;% ⊦ m * n = n * m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m; Used terms: m * 8, n, 8