| # bitsinvert(bytes2bits(bytes0)) ≠ 0, bytes2bits(bytes).first ⊦ bitsinvert(bytes2bits(bytes)) + bitsinvert(bytes2bits(bytes0)) = [], ((bits2uint(bitsinvert(bytes2bits(bytes))) * 2 ^ n→i(# bitsinvert(bytes2bits(bytes0))) + bits2uint(bitsinvert(bytes2bits(bytes0)))) + 1) + band(bits2int(bytes2bits(bytes0)), 256 ^ n→i(# bytes0) - 1) = (bits2uint(bitsinvert(bytes2bits(bytes))) + 1) * 256 ^ n→i(# bytes0), bytes = [], bytes0 = [], bytes2bits(bytes) + bytes2bits(bytes0) = [] |
bytes2bits(bytes).first ⊦ bytes = [], bytes0 = [], bytes2bits(bytes) + bytes2bits(bytes0) = [], bitsinvert(bytes2bits(bytes)) + bitsinvert(bytes2bits(bytes0)) = [], 1 + band(bits2int(bytes2bits(bytes0)), 256 ^ n→i(# bytes0) - 1) + bits2uint(bitsinvert(bytes2bits(bytes0))) + 2 ^ (8 * n→i(# bytes0)) * bits2uint(bitsinvert(bytes2bits(bytes))) = (bits2uint(bitsinvert(bytes2bits(bytes))) + 1) * 256 ^ n→i(# bytes0)
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);% ⊦ # bitsinvert(bits) = # bits;