| uint2bits(bits2uint(bits0)) = sgn(false ' + bits0), 0 < bits2uint(bits0), ∀ bits1. # bits1 < #(bits0 + false ') → true → uint2bits(bits2uint(bits1)) = sgn(false ' + bits1) ⊦ uint2bits(bits2uint(bits0)) + false ' = sgn(false ' + bits0 + false ') |
(¬ boolvar) ∈ bits ⊦ sgn(boolvar ' + bits + boolvar0 ') = sgn(boolvar ' + bits) + boolvar0 '
Used simplifier rules: bits2uint-not-neg-01: ⊦ ¬ bits2uint(bits) < 0;%uint2bits-empty: 0 ≤ i ⊦ uint2bits(i) ≠ [];%bits2uint-zeros: ⊦ ¬ true ∈ bits → bits2uint(bits) = 0;%uint2bits-zero: ⊦ uint2bits(0) = false ';% ⊦ bits + bits0 = bits1 + bits0 ↔ bits = bits1;%⊦ ¬ (¬ boolvar) ∈ bits → sgn(boolvar ' + bits + bits0) = sgn(boolvar ' + bits0);% ⊦ sgn(false ' + false ') = false ';% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bits = bits0 + bits ↔ bits0 = [];% ⊦ ¬ i ≤ j ↔ j < i; Used terms: false, bits0, false