| 0 ≤ j0, int2bits(j0) = false ' + bitsinvert(bits), 0 < j, j0 < 2 ^ i, 0 ≤ i, 0 ≤ j0, 0 < 2 ^ i, 0 ≤ j, false ∈ int2bits(j0), # int2bits(j0) ≤ i→n(i) ⊦ fillsgn(i→n(i), bitsinvert(int2bits(j0))) = [], bitsinvert(uint2bits(j)) + mklist(true, i→n(i)) = [], j0 + 2 ^ n→i(# fillsgn(i→n(i), bitsinvert(int2bits(j0)))) * j = j * 2 ^ i + j0 |
int2bits(j0) = false ' + bitsinvert(bits), 0 < j, j0 < 2 ^ i, 0 ≤ i, 0 ≤ j0, 0 < 2 ^ i, 0 ≤ j, false ∈ int2bits(j0), # int2bits(j0) ≤ i→n(i) ⊦ fillsgn(i→n(i), bitsinvert(int2bits(j0))) = [], bitsinvert(uint2bits(j)) + mklist(true, i→n(i)) = [], 2 ^ n→i(# fillsgn(i→n(i), bitsinvert(int2bits(j0)))) = 2 ^ i
Used simplifier rules: ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i * j = j * i;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ 0 < i → (i * j = i * j0 ↔ j = j0);% ⊦ i + j = i + i0 ↔ j = i0;