| j = i + 1, 1 = # int2bits(i / 2) + # int2bits(j % 2), i0 < 0, i0 ≤ ~2, j < i0, j < ~2, j < 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 ⊦ |
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 ⊦
Used simplifier rules: j0 ≠ 0, j ≤ j0 ⊦ i < (* j) → i < (* j0);% ⊦ i < j ∧ j ≤ j0 → i < j0; (forward)% ⊦ i < (* j) ∧ j < 0 → i < 0; (forward)%j0 ≠ 0, j < j0 ⊦ i < (* j) → i < (* j0);% ⊦ i + (* j) < (* j0) ↔ i < j0 - j;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;