| # bytes2bits(bytes0) ≠ 0 ⊦ bytes2bits(bytes) + bytes2bits(bytes0) = [], bits2uint(bytes2bits(bytes)) * 2 ^ n→i(# bytes2bits(bytes0)) + bits2uint(bytes2bits(bytes0)) = bits2uint(bytes2bits(bytes)) * 256 ^ n→i(# bytes0) + band(bits2int(bytes2bits(bytes0)), 256 ^ n→i(# bytes0) - 1), bytes = [], bytes0 = [], bytes2bits(bytes).first |
⊦ bytes = [], bytes0 = [], bytes2bits(bytes) + bytes2bits(bytes0) = [], bits2uint(bytes2bits(bytes0)) + 2 ^ (8 * n→i(# bytes0)) * bits2uint(bytes2bits(bytes)) = bits2uint(bytes2bits(bytes)) * 256 ^ n→i(# bytes0) + band(bits2int(bytes2bits(bytes0)), 256 ^ n→i(# bytes0) - 1), bytes2bits(bytes).first
Used simplifier rules: bytes2bits-length: ⊦ # bytes2bits(bytes) = i→n(8) * # bytes;% ⊦ # bytes = 0 ↔ bytes = [];% ⊦ m0 * m = 0 ↔ m0 = 0 ∨ m = 0;% ⊦ m * n = n * m;% ⊦ m0 * m * n = (m0 * m) * n;% ⊦ n→i(m * n) = n→i(m) * n→i(n);