| ¬(¬ true ∈ bits1 ∧ # bits0 < # bits1 ∧ ¬ bits0.first ∧ bits1 ≠ [] ∧ bits0 ≠ []), mklist(false, # bits1) = bits1, # bits0 ≤ # bits1 ⊦ bits0 = [], bits1 = lastn(# bits1, fillsgn(# bits1, bitsand(bits1, bits0))), bits2 + bits1 = [], bits1 = [], bits0.first |
mklist(false, # bits1) = bits1, # bits0 ≤ # bits1 ⊦ bits0 = [], bits1 = lastn(# bits1, fillsgn(# bits1, bitsand(bits1, bits0))), bits2 + bits1 = [], bits1 = [], bits0.first, ¬ true ∈ bits1 ∧ # bits0 ≠ # bits1
Used simplifier rules: ⊦ m ≤ n → (n ≤ m ↔ m = n);% ⊦ ¬ m < n ↔ n ≤ m;