| bytes2bits(bytes).first ⊦ bytes2bits(bytes) + bytes2bits(bytes0) = [], bytes0 = [], bytes = [], bits2uint((bitsinvert(bytes2bits(bytes)) + bitsinvert(bytes2bits(bytes0)))+1) + band(bits2int(bytes2bits(bytes0)), 256 ^ n→i(# bytes0) - 1) = (bits2uint(bitsinvert(bytes2bits(bytes))) + 1) * 256 ^ n→i(# bytes0) |
⊦ bits ≠ [] → bits2uint(bits +1) = bits2uint(bits) + 1
bitsinvert(bytes2bits(bytes)) + bitsinvert(bytes2bits(bytes0)) ≠ [], bytes2bits(bytes).first ⊦ bytes2bits(bytes) + bytes2bits(bytes0) = [], bytes0 = [], bytes = [], (bits2uint(bitsinvert(bytes2bits(bytes)) + bitsinvert(bytes2bits(bytes0))) + 1) + band(bits2int(bytes2bits(bytes0)), 256 ^ n→i(# bytes0) - 1) = (bits2uint(bitsinvert(bytes2bits(bytes))) + 1) * 256 ^ n→i(# bytes0)
Used simplifier rules: bytes2bits-empty-01: ⊦ bytes2bits(bytes) = [] ↔ bytes = [];% ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ bitsinvert(bits) = [] ↔ bits = [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1; Used terms: bitsinvert(bytes2bits(bytes)) + bitsinvert(bytes2bits(bytes0))