| 0 < j, 0 ≤ i, ∀ i0, j. i→n(i0) < i→n(i) → 0 ≤ i0 ∧ 0 < j → uint2bits(j * 2 ^ i0) = uint2bits(j) + mklist(false, i→n(i0)) ⊦ uint2bits(j * 2 ^ i) = uint2bits(j) + mklist(false, i→n(i)) |
⊦ 0 < i ∧ i ≠ 1 → uint2bits(i) = uint2bits(i / 2) + (i % 2 = 1)
0 < j * 2 ^ i ∧ j * 2 ^ i ≠ 1, 0 < j, 0 ≤ i, ∀ i0, j. i→n(i0) < i→n(i) → 0 ≤ i0 ∧ 0 < j → uint2bits(j * 2 ^ i0) = uint2bits(j) + mklist(false, i→n(i0)) ⊦ uint2bits((j * 2 ^ i) / 2) + ((j * 2 ^ i) % 2 = 1) = uint2bits(j) + mklist(false, i→n(i))
Used simplifier rules: uint2bits-2pot: 0 ≤ i ⊦ uint2bits(2 ^ i) = false ' + true ' + mklist(false, i→n(i));%uint2bits-one: ⊦ uint2bits(1) = false + true;% ⊦ 0 < i → (0 < i * j ↔ 0 < j);% ⊦ 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;% ⊦ i * j = 1 ↔ abs(i) = 1 ∧ i = j;% ⊦ 0 < j → abs(j) = j;% ⊦ i = 1 → i * j = j;% ⊦ bits + bits0 = bits1 + bits0 ↔ bits = bits1;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ i < j ∧ j = i0 → i < i0; (forward)% ⊦ boolvar + boolvar0 = boolvar ' + boolvar0 ';% ⊦ bits + bits0 = bits + bits1 ↔ bits0 = bits1; Used terms: j * 2 ^ i