| ¬ false ∈ bitsinvert(bits0), bits.first ⊦ bits + bits0 = [], bits = [], bits2uint((false ' + bitsinvert(bits0))+1) = bits2uint((bitsinvert(bits) + bitsinvert(bits0))+1), false ∈ bits |
bits.first ⊦ bits + bits0 = [], bits = [], 2 ^ n→i(# bits0) = bits2uint(bitsinvert(bits) +1 + bits0), false ∈ bits, true ∈ bits0
Used simplifier rules: bits2uint-2pot: ⊦ ¬ true ∈ bits → bits2uint(true ' + bits) = 2 ^ n→i(# bits);% ⊦ false ∈ bitsinvert(bits) ↔ true ∈ bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bitsinvert(bitsinvert(bits)) = bits;% ⊦ false ' +1 = true ';% ⊦ ¬ false ∈ bits0 → (bits + bits0)+1 = bits +1 + bitsinvert(bits0);