| true ∈ bits0 ⊦ bits0 = [], bits2uint(bitsinvert(bits1) + bitsinvert(bits0) +1) = (bits2uint(bitsinvert(bits1)) * 2 ^ n→i(# bits0) + bits2uint(bitsinvert(bits0))) + 1 |
⊦ # bits0 ≠ 0 → bits2uint(bits + bits0) = bits2uint(bits) * 2 ^ n→i(# bits0) + bits2uint(bits0)
# bitsinvert(bits0) +1 ≠ 0, true ∈ bits0 ⊦ bits0 = [], bits2uint(bitsinvert(bits1)) * 2 ^ n→i(# bitsinvert(bits0) +1) + bits2uint(bitsinvert(bits0) +1) = (bits2uint(bitsinvert(bits1)) * 2 ^ n→i(# bits0) + bits2uint(bitsinvert(bits0))) + 1
Used simplifier rules: ⊦ # bits = 0 ↔ bits = [];% ⊦ ¬ bits +1 ≠ [] ↔ false; Used terms: bitsinvert(bits0) +1, bitsinvert(bits1)