| ¬ 1 < i1 + 1, 0 < 2 ^ (i1 + 1), ~1 ≤ i1, ∀ i0. i→n(i0) < i→n(i1 + 1) → 0 ≤ i0 → uint2bits(2 ^ i0) = false ' + true ' + mklist(false, i→n(i0)) ⊦ 2 ^ (i1 + 1) = 1, uint2bits(2 ^ i1) + (2 ^ (i1 + 1) % 2 = 1)' = false ' + true ' + mklist(false, i→n(i1 + 1)) |
i1 ≤ 2 ^ (i1 + 1), 0 ≤ 2 ^ (i1 + 1), i1 < 2 ^ (i1 + 1), i1 ≤ 0, ~1 ≤ i1, 0 < 2 ^ (i1 + 1), ~1 ≤ 2 ^ (i1 + 1), ∀ i0. i→n(i0) < i→n(i1 + 1) → 0 ≤ i0 → uint2bits(2 ^ i0) = false ' + true ' + mklist(false, i→n(i0)) ⊦ uint2bits(2 ^ i1) + (2 ^ (i1 + 1) % 2 = 1)' = false ' + true ' + mklist(false, i→n(i1 + 1)), 2 ^ (i1 + 1) = 1
Used simplifier rules: ⊦ ~1 < i ↔ 0 ≤ i;% ⊦ j ≤ j0 ∧ j0 ≤ j1 → j ≤ j1; (forward)% ⊦ i ≤ j ∧ j < j0 → i < j0; (forward)% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ (* j) < i0 + (* j0) ↔ j - j0 < i0;