| ¬ 8 < # 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 = [] |
8 = # bits0, ∀ bits1, bits2. # bits2 + # bits1 < # bits + 8 → # bits1 % 8 = 0 → bits2 = [] ∨ bits1 = [] ∨ bits2bytes(bits2 + bits1) = bits2bytes(bits2) + bits2bytes(bits1) ⊦ i2b(bits2int(bits0)) ' = bits2bytes(bits0), bits0 = [], bits = []
Used simplifier rules: ⊦ # bits = 0 ↔ bits = [];% ⊦ m < m + n ↔ n ≠ 0;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ bytes + bytes0 = bytes + bytes1 ↔ bytes0 = bytes1;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ firstn(# bits, bits + bits0) = bits;% ⊦ 0 + m = m;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;%n < n0 ⊦ (* n) ≠ m0 + (* n0);% ⊦ m < n → n ≠ 0; (forward)% ⊦ m < n ∧ m = n0 → n0 < n; (forward)% ⊦ m ≤ n ∧ n < n0 → m < n0; (forward)%0 < n ⊦ (* n) ≤ m → m ≠ 0; (forward)% ⊦ n = # bits → lastn(n, bits) = bits;% ⊦ m ≤ n → (n ≤ m ↔ m = n);% ⊦ ¬ m < n ↔ n ≤ m;