| 8 ≤ # bits0, # bits0 % 8 = 0, 8 < # bits + # bits0, ∀ bits1, bits2. # bits2 + # bits1 < # bits + # bits0 → # bits1 % 8 = 0 → bits2 = [] ∨ bits1 = [] ∨ bits2bytes(bits2 + bits1) = bits2bytes(bits2) + bits2bytes(bits1) ⊦ bits2bytes(firstn(# bits + (# bits0 - 8), bits + bits0)) + i2b(bits2int(lastn(8, bits + bits0))) ' = bits2bytes(bits) + bits2bytes(bits0), bits = [], bits0 = [] |
# bits0 % 8 = 0, 8 < # bits + # bits0, 8 ≤ # bits0, ∀ bits1, bits2. # bits2 + # bits1 < # bits + # bits0 → # bits1 % 8 = 0 → bits2 = [] ∨ bits1 = [] ∨ bits2bytes(bits2 + bits1) = bits2bytes(bits2) + bits2bytes(bits1) ⊦ bits2bytes(firstn(# bits + (# bits0 - 8), bits + bits0)) + i2b(bits2int(lastn(8, bits0))) ' = bits2bytes(bits) + bits2bytes(bits0), bits0 = [], bits = []
Used simplifier rules: ⊦ # bits = 0 ↔ bits = [];%0 < n ⊦ (* n) ≤ m → m ≠ 0; (forward)% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ n ≤ # bits → lastn(n, bits0 + bits) = lastn(n, bits);