| 8 ≠ 0, # bits = n + 8, ∃ n0. n = n0 * 8, n ≤ 8, ∀ bits0. # bits0 < n + 8 → true → # bits0 % 8 = 0 ∧ 8 < # bits0 → bits2bytes(bits0) = bits2bytes(firstn(8, bits0)) + bits2bytes(restn(8, bits0)) ⊦ bits2bytes(firstn(n, bits)) + i2b(bits2int(lastn(8, bits))) ' = bits2bytes(firstn(8, bits)) + bits2bytes(restn(8, bits)), bits = [], n = 0 |
# bits = n0 * 8 + 8, n0 * 8 ≤ 8, ∀ bits0. # bits0 < # bits → true → # bits0 % 8 = 0 ∧ 8 < # bits0 → bits2bytes(bits0) = bits2bytes(firstn(8, bits0)) + bits2bytes(restn(8, bits0)) ⊦ bits2bytes(firstn(n0 * 8, bits)) + i2b(bits2int(lastn(8, bits))) ' = bits2bytes(firstn(8, bits)) + bits2bytes(restn(8, bits)), bits = [], n0 = 0
Used simplifier rules: ⊦ m * n = n * m;% ⊦ m0 * m * n = (m0 * m) * n;% ⊦ m0 * m = 0 ↔ m0 = 0 ∨ m = 0;