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