| bitsor(false ' + bits0, false ' + bits2) = true ' + bits1, ∀ bits1, bits2, bits. # bits < # bits0 → bitsor(false ' + bits, false ' + bits2) = true ' + bits1 → false ⊦ |
⊦ 1 < # bits ∧ 1 < # bits0 → bitsor(bits, bits0) = bitsor(bits.butlast, bits0.butlast) + (bits.last ∨ bits0.last)
¬(1 < #(false ' + bits0) ∧ 1 < #(false ' + bits2)), bitsor(false ' + bits0, false ' + bits2) = true ' + bits1, ∀ bits1, bits2, bits. # bits < # bits0 → bitsor(false ' + bits, false ' + bits2) = true ' + bits1 → false ⊦
1 < #(false ' + bits0) ∧ 1 < #(false ' + bits2), bitsor((false ' + bits0).butlast, (false ' + bits2).butlast) + ((false ' + bits0).last ∨ (false ' + bits2).last) = true ' + bits1, ∀ bits1, bits2, bits. # bits < # bits0 → bitsor(false ' + bits, false ' + bits2) = true ' + bits1 → false ⊦
Used terms: false ' + bits2, false ' + bits0