| boolvar, ∀ bits1. # bits1 < #(bits0 + boolvar ') → true → (bits2uint(bits1) ≤ 0 ↔ bits2uint(bits1) = 0) ⊦ bits2uint(bits0) * 2 + 1 ≤ 0 ↔ bits2uint(bits0) * 2 + 1 = 0 |
bits2uint(bits0) < 0, ∀ bits1. # bits1 < #(bits0 + true ') → true → (bits2uint(bits1) ≤ 0 ↔ bits2uint(bits1) = 0) ⊦
Used simplifier rules: ⊦ i ≤ ~1 ↔ i < 0;% ⊦ 0 < i ∧ j < 0 → ((* i) * i0 ≤ (* j) ↔ i0 ≤ (j + 1 - i) / i);% ⊦ i + (* j) ≤ (* j0) ↔ i ≤ j0 - j;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i * j = j * i;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ 2 * i ≠ ~1;% ⊦ (* j) = i0 + (* j0) ↔ j - j0 = i0;