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