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