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