| ∀ bits, bits1. # bits1 < # bits0 → true → bits = [] ∨ bits1 = [] ∨ bits2int(bitsxor(bits, bits1)) = bits2int(bitsor(bitsand(bitsinvert(bits), bits1), bitsand(bitsinvert(bits1), bits))) ⊦ # bits0 = 1, bits0 = false ', bits0 = true ', bits0 = [], ~1 = bits2int(bits0) + bits2int(bitsxor(true ', bits0)) |
⊦ bits0 ≠ [] ∧ bits = true ' → bitsxor(bits, bits0) = bitsinvert(bits0)
Used simplifier rules: ⊦ bits ≠ [] → bits2int(bitsinvert(bits)) = ~ bits2int(bits) - 1;% ⊦ ~ i - j = ~(i + j);% ⊦ i + ~ j = i - j;% ⊦ i - j + i = ~ j;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i; Used terms: bits0, true '