| ~128 ≤ bits2int(boolvar ' + bits0) ∧ bits2int(boolvar ' + bits0) ≤ 127, # bits0 ≤ 7 ⊦ 0 ≤ bits2int(boolvar ' + bits0) ↔ ¬ boolvar |
bits2uint((false ' + bitsinvert(bits0))+1) = 0, # bits0 ≤ 7 ⊦
Used simplifier rules: ⊦ i - j ≤ i0 ↔ i ≤ j + i0;%i < 0 ⊦ (* i) + j = j - ~ i;% ⊦ (* j) ≤ i0 + (* j0) ↔ j - j0 ≤ i0;% ⊦ ~ i ≤ j ↔ 0 ≤ i + j;% ⊦ j ≤ j0 ∧ j0 ≤ j1 → j ≤ j1; (forward)% ⊦ ¬ bits2uint(bits) < 0;% ⊦ ¬ i ≤ j ↔ j < i;% ⊦ bits2int(false ' + bits) = bits2uint(bits);% ⊦ bits2uint(bits) ≤ 0 ↔ bits2uint(bits) = 0;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + 0 = i;% ⊦ i ≤ ~ j ↔ i + j ≤ 0;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bitsinvert(true ' + bits) = false + bitsinvert(bits);% ⊦ boolvar + bits = boolvar ' + bits;% ⊦ bits2int(true ' + bits) = ~ bits2uint(bitsinvert(true + bits) +1);