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