| bits0 ≠ [] ∧ (bits0.first ↔ true), # bits0 = # fillsgn(# bits0, sgn(bits0)), 1 + # sgn(bits0) < # bits1 + # bits0, # sgn(bits0) < # bits0, # sgn(bits0) < # bits1 + # bits0, true ∈ bits1 ⊦ fillsgn(# bits0, sgn(bits0)) = bits0, bits0 = [], bits1 = [], bits1 + bits0 = [], false ∈ bits1 |
# bits0 = # fillsgn(# bits0, sgn(bits0)), bits0.first, true ∈ bits1, # sgn(bits0) < # bits1 + # bits0, # sgn(bits0) < # bits0, 1 + # sgn(bits0) < # bits1 + # bits0 ⊦ bits0 = [], bits1 + bits0 = [], bits1 = [], fillsgn(# bits0, sgn(bits0)) = bits0, false ∈ bits1
Used simplifier rules: ⊦ m < n ∧ n = n0 → m < n0; (forward)% ⊦ m + n = n + m;