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