| # int2bits(i) = # int2bits(j), i0 + 2 ^ n→i(# int2bits(j)) ≤ 0, j ≤ 0, i ≤ 0, bits2int(bitsand(int2bits(i), int2bits(j))) < i0, ∀ i0, j, i1. i→n(i1) < i→n(i) → # int2bits(i1) = # int2bits(j) ∧ bits2int(bitsand(int2bits(i1), int2bits(j))) < i0 ∧ i1 ≤ 0 ∧ j ≤ 0 ∧ i0 + 2 ^ n→i(# int2bits(j)) ≤ 0 → false ⊦ i = 0, i ≠ 0 ∧ i ≠ ~1 |
# int2bits(~1) = # int2bits(j), j ≤ 0, i0 + 2 ^ n→i(# int2bits(j)) ≤ 0, bits2int(bitsand(int2bits(~1), int2bits(j))) < i0, ∀ i0, j, i1. i→n(i1) < i→n(~1) → # int2bits(i1) = # int2bits(j) ∧ bits2int(bitsand(int2bits(i1), int2bits(j))) < i0 ∧ i1 ≤ 0 ∧ j ≤ 0 ∧ i0 + 2 ^ n→i(# int2bits(j)) ≤ 0 → false ⊦
Used simplifier rules: ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ i ≠ j → (i ≤ j ↔ i < j);