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