| bitsinvert(bits0) ≠ [], 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, bitsinvert(bits0) +1 = [] |
true ∈ bits0 ⊦ bitsinvert(bits0) +1 = [], bits0 = [], bits2uint(bitsinvert(bits1)) * 2 ^ n→i(# bitsinvert(bits0) +1) = bits2uint(bitsinvert(bits1)) * 2 ^ n→i(# bits0)
Used simplifier rules: ⊦ bitsinvert(bits) = [] ↔ bits = [];% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = i + i0 ↔ j = i0;