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