| uint2bits(i / 2) = uint2bits(j / 2), i % 2 = 1 ↔ j % 2 = 1, 0 < j, 0 < i, 0 ≤ j, 0 ≤ i, ∀ i0, j. i→n(i0) < i→n(i) → uint2bits(i0) = uint2bits(j) ∧ 0 ≤ i0 ∧ 0 ≤ j → i0 = j ⊦ i = j, i = 1, j = 1 |
i / 2 = j / 2, uint2bits(i / 2) = uint2bits(j / 2), i % 2 = 1 ↔ j % 2 = 1, 0 < j, 0 < i, 0 ≤ j, 0 ≤ i, ∀ i0, j. i→n(i0) < i→n(i) → uint2bits(i0) = uint2bits(j) ∧ 0 ≤ i0 ∧ 0 ≤ j → i0 = j ⊦ i = j, i = 1, j = 1
Used simplifier rules: ⊦ i < j ∧ ¬ i0 < j → ¬ i0 < i;% ⊦ ¬ i ≤ j ↔ j < i;% ⊦ 0 ≤ i / 2 ↔ ~1 ≤ i;% ⊦ i→n(i) < i→n(j) ↔ abs(i) < abs(j);%j ≠ 0 ⊦ abs(i / j) = abs(i) / abs(j);% ⊦ 0 < j → abs(j) = j;% ⊦ 0 < j ∧ 0 ≤ i → (i / (* j) < j0 ↔ i < j * j0);% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ 0 < i → (i * j ≤ i ↔ j ≤ 1);% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i * j = j * i; Used terms: i / 2, j / 2