| 2 ^ n→i(# int2bits(j) - 1) < abs(j) ⊦ band(j, 2 ^ n→i(# int2bits(j)) - 1) = bits2uint(int2bits(j)) |
⊦ 0 < i ∧ 0 ≤ j → (2 ^ j < i ↔ i→n(j) + 2 ≤ # int2bits(i) ∧ i ≠ 2 ^ j)
0 < abs(j) ∧ 0 ≤ n→i(# int2bits(j) - 1), i→n(n→i(# int2bits(j) - 1)) + 2 ≤ # int2bits(abs(j)) ∧ abs(j) ≠ 2 ^ n→i(# int2bits(j) - 1) ⊦ band(j, 2 ^ n→i(# int2bits(j)) - 1) = bits2uint(int2bits(j))
Used simplifier rules: band-num: ⊦ band((* i), (* j)) = bits2int(bitsand(int2bits(i), int2bits(j)));%band-associativity: ⊦ band(i, band(i0, j)) = band(band(i, i0), j);%band-commutativity: ⊦ band(i, j) = band(j, i);% ⊦ 0 < abs(i) ↔ i ≠ 0;% ⊦ 0 ≤ n→i(n);% ⊦ int2bits(0) = false ';% ⊦ # boolvar ' = 0 +1;% ⊦ bits2uint(false ') = 0; Used terms: abs(j), n→i(# int2bits(j) - 1)