| 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: uint2bits-zero: ⊦ uint2bits(0) = false ';%uint2bits-one: ⊦ uint2bits(1) = false + true;% ⊦ bits + [] = bits;% ⊦ mklist(boolvar, 0) = [];% ⊦ i ≠ j → (i ≤ j ↔ i < j);% ⊦ ~1 < i ↔ 0 ≤ i;% ⊦ i ≤ j → (j ≤ i ↔ i = j);% ⊦ i < j ∧ i = i0 → i0 < j; (forward)% ⊦ boolvar + boolvar0 = boolvar ' + boolvar0 ';% ⊦ mklist(boolvar, 1) = boolvar ';% ⊦ bits + bits0 = bits + bits1 ↔ bits0 = bits1;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1; Used formulas: i1 = ~1