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