| ∀ bits1, bits. # bits1 < # bits0 → true → bits2uint(bits + bits1) = bits2uint(bits) * 2 ^ n→i(# bits1) + bits2uint(bits1) ∨ bits1 = [] ⊦ bits0 = [], bits2uint(bits + bits0) = bits2uint(bits) * 2 ^ n→i(# bits0) + bits2uint(bits0) |
⊦ bits ≠ [] ↔ (∃ bits0, boolvar. bits = bits0 + boolvar ')
∀ bits1, bits. # bits1 < # bits0 → true → bits2uint(bits + bits1) = bits2uint(bits) * 2 ^ n→i(# bits1) + bits2uint(bits1) ∨ bits1 = [] ⊦ ∀ bits1, boolvar. bits0 ≠ bits1 + boolvar ', bits2uint(bits + bits0) = bits2uint(bits) * 2 ^ n→i(# bits0) + bits2uint(bits0)
Used terms: bits0