| n0 = m + 1, n = # fillsgn(n, false ' + true ' + bits1), # bits = 2 + # bits1, m = 0, n0 + 1 + # bits1 < n ⊦ lastn(n, fillsgn(n, bitsand(bits, false ' + true ' + bits1))) = lastn(n, fillsgn(n, bitsand(false ' + true ' + bits1, bits2 + bits))), bits2 = [], bits2 + bits = [], n0 = 0 |
# bits = 2 + # bits1, n = # fillsgn(n, false ' + true ' + bits1), # bits < n ⊦ bits2 + bits = [], bits2 = [], lastn(n, fillsgn(n, bitsand(bits, false ' + true ' + bits1))) = lastn(n, fillsgn(n, bitsand(false ' + true ' + bits1, bits2 + bits)))
Used simplifier rules: ⊦ m < n ∧ n = n0 → m < n0; (forward)% ⊦ m < n ∧ m = n0 → n0 < n; (forward)% ⊦ m + n = n + m;