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