| uint2bits(~ j) = bits + true ' + bits0, bitsinvert(uint2bits(~ j)) +1 = bitsinvert(bits) + true ' + bits0, j < 0 ⊦ j = 0, true ∈ bits0, true ∈ sgn(bitsinvert(bits) + true ' + bits0) |
⊦ bits ≠ [] → (boolvar ∈ sgn(bits) ↔ boolvar ∈ bits)
Used simplifier rules: ⊦ boolvar ' ≠ [];% ⊦ bitsinvert(bits) = [] ↔ bits = [];% ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ bits + boolvar ' + bits0 ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ∈ bits + bits0 ↔ ¬ ¬(boolvar ∈ bits ∨ boolvar ∈ bits0);% ⊦ true ∈ bitsinvert(bits) ↔ false ∈ bits;%⊦ ¬ boolvar ∈ boolvar0 ' + bits ↔ ¬(boolvar ↔ boolvar0) ∧ ¬ boolvar ∈ bits; Used terms: bitsinvert(bits) + true ' + bits0, true