| 1 = # int2bits(i / 2) + # int2bits((i + 1) % 2), i < 0, i < ~3, i + 1 < i0, i0 ≤ ~2, i0 < 0, ∀ 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 ⊦ |
⊦ i ≤ 0 → # int2bits(i % 2) = 1
Used simplifier rules: ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ int2bits(j) ≠ [];% ⊦ # bits = 0 ↔ bits = [];% ⊦ 1 = m + 1 ↔ m = 0;% ⊦ i + (* j) ≤ (* j0) ↔ i ≤ j0 - j;% ⊦ i ≤ ~1 ↔ i < 0;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i < j → (¬ ¬ j ≤ i ↔ false);% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i; Used terms: i + 1