| 0 ≤ i - j ∧ ¬ false ∈ int2bits(i).rest ∧ 0 ≤ i, j < 0, 0 ≤ i ⊦ (i - j) % (i + 1) + (j + 1) % 2 ^ n→i(# int2bits(i) - 1) + 2 ^ n→i(# int2bits(i) - 1) = i + 1, false ∈ int2bits(i).rest |
j < 0, 0 ≤ i ⊦ (i - j) % (i + 1) + (j + 1) % 2 ^ n→i(# int2bits(i) - 1) + 2 ^ n→i(# int2bits(i) - 1) = i + 1, false ∈ int2bits(i).rest
Used simplifier rules: ⊦ i < 0 ∧ 0 ≤ j → i ≤ j;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + 0 = i;% ⊦ i ≤ j - i0 ↔ i + i0 ≤ j;