| 8 = # fillsgn(8, int2bits(i)), # bits = 8, int2bits(j) = bits0 + bits, # int2bits(i) < 8 ⊦ bitsand(fillsgn(8, int2bits(i)), bits0 + bits) = [], lastn(8, fillsgn(8, bitsand(int2bits(i), bits0 + bits))) = lastn(8, fillsgn(8, bitsand(fillsgn(8, int2bits(i)), bits0 + bits))) |
⊦ bits ≠ [] ∧ bits0 ≠ [] → bitsand(bits, bits0) = bitsand(bits0, bits)
fillsgn(8, int2bits(i)) ≠ [] ∧ bits0 + bits ≠ [], 8 = # fillsgn(8, int2bits(i)), # bits = 8, int2bits(j) = bits0 + bits, # int2bits(i) < 8 ⊦ bitsand(bits0 + bits, fillsgn(8, int2bits(i))) = [], lastn(8, fillsgn(8, bitsand(int2bits(i), bits0 + bits))) = lastn(8, fillsgn(8, bitsand(bits0 + bits, fillsgn(8, int2bits(i)))))
Used simplifier rules: ⊦ fillsgn(n, bits) = [] ↔ bits = [] ∧ n = 0;% ⊦ int2bits(j) ≠ [];% ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ [] + bits = bits; Used terms: bits0 + bits, fillsgn(8, int2bits(i))