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