| bits.first ∧ bits ≠ [], ~ bits2uint(bitsinvert(bits) +1) < 0, 2 ^ n→i(# bits) + ~ bits2uint(bitsinvert(bits) +1) < 0, 2 + # bits ≤ # uint2bits(~ ~ bits2uint(bitsinvert(bits) +1)), ~ bits2uint(bitsinvert(bits) +1) ≤ 0 ⊦ bits = [], bits = [] |
bits.first, 0 < bits2uint(bitsinvert(bits) +1), 2 ^ n→i(# bits) < bits2uint(bitsinvert(bits) +1), 2 + # bits ≤ # uint2bits(bits2uint(bitsinvert(bits) +1)), 0 ≤ bits2uint(bitsinvert(bits) +1) ⊦ bits = []
Used simplifier rules: ⊦ ~ i ≤ j ↔ 0 ≤ i + j;% ⊦ ~ ~ i = i;% ⊦ i + 0 = i;% ⊦ i - j < i0 ↔ i < j + i0;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + ~ j = i - j;% ⊦ ~ i < 0 ↔ 0 < i;