| ¬ 0 < i, # int2bits(i) = m + 1, mklist(i < 0, i→n(j)) + int2bits(i) = true ' + bits, j < 32, 0 ≤ j ⊦ 0 < bits2uint((false ' + bitsinvert(sublist(0, m, bits)))+1), mklist(¬ 0 < i, i→n(j)) + int2bits(i) = [], i = 0 |
bits2uint((false ' + bitsinvert(sublist(0, m, bits)))+1) = 0, mklist(true, i→n(j)) + int2bits(i) = true ' + bits, # int2bits(i) = m + 1, i < 0, 0 ≤ j, j < 32 ⊦ i = 0
Used simplifier rules: ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ 1 = m + 1 ↔ m = 0;% ⊦ # boolvar ' = 0 +1;% ⊦ int2bits(0) = false ';% ⊦ true ∈ int2bits(j) ↔ j ≠ 0;% ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ boolvar ∈ mklist(boolvar, m) ↔ m ≠ 0;% ⊦ boolvar ∈ bits + bits0 ↔ ¬ ¬(boolvar ∈ bits ∨ boolvar ∈ bits0);% ⊦ boolvar ' + bits ≠ [];% ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ i < j ∧ j ≤ j0 → i < j0; (forward)% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' + bits = bits0 → boolvar ∈ bits0; (forward)% ⊦ i < j → ¬ j < i;% ⊦ bits2uint(bits) ≤ 0 ↔ bits2uint(bits) = 0;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i < 0 ∧ 0 ≤ j → i < j;% ⊦ ¬ i < j → (i ≠ j ↔ j < i);