| ⊦ 0 < i ∧ lastn(m, int2bits(i)).first ∧ m ≤ # int2bits(i) ∧ m ≠ 0 → bits2int(lastn(m, int2bits(i))) = i % 2 ^ n→i(m) - 2 ^ n→i(m) |
0 < i, lastn(m, int2bits(i)).first, m ≤ # int2bits(i) ⊦ m = 0, i % 2 ^ n→i(m) = bits2int(lastn(m, int2bits(i))) + 2 ^ n→i(m)
Used simplifier rules: ⊦ i - j = i0 ↔ i = i0 + j;