| 0 ≤ i0, 0 ≤ 2 ^ i0, ∀ j0, i. i→n(j0) < i→n(2 ^ i0 * 2 + 1) → 0 ≤ i ∧ 2 ^ i < j0 → uint2bits(j0 % 2 ^ i) = sgn(false ' + lastn(i→n(i), uint2bits(j0).rest)) ⊦ ~1 = i0, uint2bits((2 ^ i0 * 2 + 1) % (2 ^ i0 * 2)) = false ' + true ' |
⊦ 1 < i → (i + 1) % i = 1
Used simplifier rules: uint2bits-one: ⊦ uint2bits(1) = false + true;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits + bits0 = bits + bits1 ↔ bits0 = bits1;% ⊦ boolvar + boolvar0 = boolvar ' + boolvar0 ';% ⊦ 0 < i ∧ 0 ≤ j → ((* j) < (* i) * i0 ↔ j / i < i0);% ⊦ 0 < i → (0 < i ^ j ↔ i = 1 ∨ 0 ≤ j);% ⊦ ¬ i ≤ j ↔ j < i;% ⊦ i ≤ j → (¬ ¬ j < i ↔ false);% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i * j = j * i; Used terms: 2 ^ i0 * 2