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