| # bits = # bits1, # bits1 ≤ # bitsand(bits2, bits3) + # bitsand(bits1, bits) ⊦ bits2 + bits1 = [], bits2 = [], bits3 + bits = [], bits1 = [], bits3 = [], lastn(# bits1, fillsgn(# bits1, bitsand(bits3 + bits, bits1))) = lastn(# bits1, bitsand(bits2, bits3) + bitsand(bits1, bits)) |
⊦ n = # bits → lastn(n, bits0 + bits) = bits
# bits1 ≠ # bitsand(bits1, bits), # bits = # bits1, # bits1 ≤ # bitsand(bits2, bits3) + # bitsand(bits1, bits) ⊦ bits2 + bits1 = [], bits2 = [], bits3 + bits = [], bits1 = [], bits3 = [], lastn(# bits1, fillsgn(# bits1, bitsand(bits3 + bits, bits1))) = lastn(# bits1, bitsand(bits2, bits3) + bitsand(bits1, bits))
# bits1 = # bitsand(bits1, bits), # bits = # bits1, # bits1 ≤ # bitsand(bits2, bits3) + # bitsand(bits1, bits) ⊦ bits2 + bits1 = [], bits2 = [], bits3 + bits = [], bits1 = [], bits3 = [], lastn(# bits1, fillsgn(# bits1, bitsand(bits3 + bits, bits1))) = bitsand(bits1, bits)
Used terms: bitsand(bits1, bits), bitsand(bits2, bits3), # bits1