| uint2bits(j) = false ' + true ' + bits, false ∈ false ' + true ' + bits, 0 < j, ∀ i. ¬ i < 0 → j ≠ 2 ^ i ⊦ sgn(bitsinvert(false ' + true ' + bits) +1) = bitsinvert(false ' + true ' + bits) +1 |
⊦ true ∈ bits → sgn(bitsinvert(false ' + true ' + bits) +1) = true ' + false ' + bitsinvert(bits) +1
¬ true ∈ bits, uint2bits(j) = false ' + true ' + bits, false ∈ false ' + true ' + bits, 0 < j, ∀ i. ¬ i < 0 → j ≠ 2 ^ i ⊦ sgn(bitsinvert(false ' + true ' + bits) +1) = bitsinvert(false ' + true ' + bits) +1
Used simplifier rules: ⊦ bitsinvert(false ' + bits) = true + bitsinvert(bits);% ⊦ bitsinvert(true ' + bits) = false + bitsinvert(bits);% ⊦ boolvar + bits = boolvar ' + bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ (bits + false ' + bits0)+1 = bits + (false ' + bits0)+1;%⊦ true ∈ bits0 → (bits + bitsinvert(bits0))+1 = bits + bitsinvert(bits0) +1;% ⊦ bits + bits0 = bits + bits1 ↔ bits0 = bits1; Used terms: bits