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