| ¬(¬ true ∈ bits1 ∧ bits1 ≠ []), # bits0 = # fillsgn(# bits0, sgn(bits1 + bits0)), # sgn(bits1 + bits0) < # bits1 + # bits0, # sgn(bits1 + bits0) < # bits0, # sgn(bits1 + bits0) + 1 < # bits1 + # bits0 ⊦ bits0 = [], fillsgn(# bits0, sgn(bits1 + bits0)) = bits0, bits1 + bits0 = [], bits1 = [], true ∈ bits1 ∧ false ∈ bits1 |
# bits0 = # fillsgn(# bits0, sgn(true ' + bits0)), 1 + # sgn(true ' + bits0) < # bits1 + # bits0, # sgn(true ' + bits0) < # bits0, # sgn(true ' + bits0) < # bits1 + # bits0, true ∈ bits1 ⊦ fillsgn(# bits0, sgn(true ' + bits0)) = bits0, bits0 = [], bits1 = [], bits1 + bits0 = [], false ∈ bits1
Used simplifier rules: sgn-append-05: ⊦ ¬ false ∈ bits ∧ bits ≠ [] → sgn(bits + bits0) = sgn(true ' + bits0);% ⊦ m + n = n + m;% ⊦ m < n ∧ n = n0 → m < n0; (forward)% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;