| ¬(bitsinvert(bits) ≠ [] ∧ bits0 = false '), ∀ bits, bits1. # bits1 < # bits0 → true → bits = [] ∨ bits1 = [] ∨ bits2int(bitsxor(bits, bits1)) = bits2int(bitsor(bitsand(bitsinvert(bits), bits1), bitsand(bitsinvert(bits1), bits))) ⊦ bits2int(bitsxor(bits, bits0)) = bits2int(bitsor(bitsand(bitsinvert(bits), bits0), bitsand(bitsinvert(bits0), bits))), bits0 = [], bits = [], bits0 = true ', # bits ≠ 1 ∧ # bits0 ≠ 1 |
# bits = 1, ∀ bits, bits1. # bits1 < # bits0 → true → bits = [] ∨ bits1 = [] ∨ bits2int(bitsxor(bits, bits1)) = bits2int(bitsor(bitsand(bitsinvert(bits), bits1), bitsand(bitsinvert(bits1), bits))) ⊦ bits2int(bitsxor(bits, bits0)) = bits2int(bitsor(bitsand(bitsinvert(bits), bits0), bitsand(bitsinvert(bits0), bits))), bits0 = [], bits = [], bits0 = true ', bits0 = false ', # bits0 = 1
Used simplifier rules: ⊦ # bits = 1 ∧ bits ≠ true ' → bits = false '; (forward)% ⊦ # bits = 1 ∧ bits ≠ false ' → bits = true '; (forward)% ⊦ bitsinvert(bits) = [] ↔ bits = [];