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