| ¬ (bits + bits0).first ∧ bits + bits0 ≠ [] ⊦ # bits0 ≠ 0 ∧ # bits ≠ 0 ∧ ¬ bits.first → bits2uint(bits + bits0) = bits2uint(bits) * 2 ^ n→i(# bits0) + bits2uint(bits0) |
⊦ bits + bits0 = [], bits2uint(bits + bits0) = bits2uint(bits) * 2 ^ n→i(# bits0) + bits2uint(bits0), bits = [], bits0 = [], bits.first
Used simplifier rules: ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits ≠ [] → ((bits + bits0).first ↔ bits.first);% ⊦ # bits = 0 ↔ bits = [];