| ¬ 1 < bits2uint(bits0) * 2 + 1, ∀ bits1. # bits1 < #(bits0 + true ') → true → uint2bits(bits2uint(bits1)) = sgn(false ' + bits1) ⊦ uint2bits(bits2uint(bits0) * 2 + 1) = sgn(false ' + bits0 + true ') |
bits2uint(bits0) = 0, ∀ bits1. # bits1 < #(bits0 + true ') → true → uint2bits(bits2uint(bits1)) = sgn(false ' + bits1) ⊦ false ' + true ' = sgn(false ' + bits0 + true ')
Used simplifier rules: bits2uint-not-neg: ⊦ bits2uint(bits) ≤ 0 ↔ bits2uint(bits) = 0;%uint2bits-one: ⊦ uint2bits(1) = false + true;% ⊦ boolvar + boolvar0 = boolvar ' + boolvar0 ';% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i * j = j * i;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ 0 < i → (0 < i * j ↔ 0 < j);% ⊦ (* j) < i0 + (* j0) ↔ j - j0 < i0;