| 0 ≤ bits2int(bytes2bits(bytes0)) ⊦ bytes = [], bytes0 = [], bytes2bits(bytes) + bytes2bits(bytes0) = [], bits2uint(bytes2bits(bytes0)) = bits2int(bytes2bits(bytes0)) % 2 ^ (8 * n→i(# bytes0)), bytes2bits(bytes).first |
⊦ ¬ bits.first ∧ bits ≠ [] → bits2int(bits) = bits2uint(bits)
¬ bytes2bits(bytes0).first ∧ bytes2bits(bytes0) ≠ [], 0 ≤ bits2uint(bytes2bits(bytes0)) ⊦ bytes = [], bytes0 = [], bytes2bits(bytes) + bytes2bits(bytes0) = [], bits2uint(bytes2bits(bytes0)) = bits2uint(bytes2bits(bytes0)) % 2 ^ (8 * n→i(# bytes0)), bytes2bits(bytes).first
Used simplifier rules: bytes2bits-empty-01: ⊦ bytes2bits(bytes) = [] ↔ bytes = [];%bits ≠ [] ⊦ 0 ≤ bits2int(bits) → ¬ bits.first; Used terms: bytes2bits(bytes0)