| ¬(bits ≠ [] ∧ false ' + bits1 = false '), # bits ≤ 1 + # bits1, ∀ bits1, bits0. # bits0 < # bits → # bits0 ≤ 1 + # bits1 → bits0 = [] ∨ bitsor(bits0, false ' + bits1) = false ' + bits1 ∨ true ∈ bits0 ⊦ bitsor(bits, false ' + bits1) = false ' + bits1, bits = [], false ' + bits1 = true ', true ∈ bits, # bits ≠ 1 ∧ bits1 ≠ [] |
# bits = 1, ∀ bits1, bits0. # bits0 < 1 → # bits0 ≤ 1 + # bits1 → bits0 = [] ∨ bitsor(bits0, false ' + bits1) = false ' + bits1 ∨ true ∈ bits0 ⊦ bits1 = [], false ' + bits1 = true ', bits = [], bitsor(bits, false ' + bits1) = false ' + bits1, true ∈ bits
Used simplifier rules: ⊦ m ≤ m + n;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + 1 ≠ 0;%0 < n ⊦ (* n) ≤ m → m ≠ 0; (forward)% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits = bits + bits0 ↔ bits0 = [];