| bits2int(bits) < 0, 2 ^ n→i(# bits) + bits2int(bits) < 0, 2 + # bits ≤ # uint2bits(~ bits2int(bits)), bits2int(bits) ≤ 0 ⊦ bits = [], bits = [] |
⊦ bits.first ∧ bits ≠ [] → bits2int(bits) = ~ bits2uint(bitsinvert(bits) +1)
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 = []
Used simplifier rules: bits2int-first-01: bits ≠ [] ⊦ bits2int(bits) < 0 → bits.first; Used terms: bits