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