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