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