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