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