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