| 0 ≤ 2 ∧ 0 ≤ 8 ∧ 0 ≤ n→i(# bytes0) ⊦ bytes = [], bytes0 = [], bytes2bits(bytes) + bytes2bits(bytes0) = [], bits2uint(bytes2bits(bytes0)) + (2 ^ 8) ^ n→i(# bytes0) * bits2uint(bytes2bits(bytes)) = bits2uint(bytes2bits(bytes)) * 256 ^ n→i(# bytes0) + band(bits2int(bytes2bits(bytes0)), 256 ^ n→i(# bytes0) - 1), bytes2bits(bytes).first |
⊦ bytes = [], bytes0 = [], bytes2bits(bytes) + bytes2bits(bytes0) = [], bits2uint(bytes2bits(bytes0)) = band(bits2int(bytes2bits(bytes0)), 256 ^ n→i(# bytes0) - 1), bytes2bits(bytes).first
Used simplifier rules: ⊦ 0 ≤ n→i(n);% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = i + i0 ↔ j = i0;% ⊦ i * j = j * i;