| bits.first ⊦ bits = [], 2 ^ n→i(# bits) = bits2uint(bits) + bits2uint(bitsinvert(bits) +1) |
⊦ bits ≠ [] → bits2uint(bits +1) = bits2uint(bits) + 1
bitsinvert(bits) ≠ [], bits.first ⊦ bits = [], 2 ^ n→i(# bits) = bits2uint(bits) + bits2uint(bitsinvert(bits)) + 1
Used simplifier rules: ⊦ bitsinvert(bits) = [] ↔ bits = []; Used terms: bitsinvert(bits)