| # bits ≤ 8, ∀ boolvar, bits0. # bits0 < # bits → true → bits0 ≠ [] → (boolvar ∈ bytes2bits(bits2bytes(bits0)) ↔ boolvar ∈ bits0) ⊦ bits = [], boolvar ∈ fillsgn(8, int2bits(b2i(i2b(bits2int(bits))))) ↔ boolvar ∈ bits |
~128 ≤ i, i ≤ 127 ⊦ b2i(i2b((* i))) = i
Used simplifier rules: ⊦ # bits ≤ 8 ∧ bits ≠ [] → ¬ 127 < bits2int(bits);% ⊦ # bits ≤ 8 ∧ bits ≠ [] → ¬ bits2int(bits) < ~128;% ⊦ ¬ i ≤ j ↔ j < i;%bits ≠ [] ⊦ int2bits(bits2int(bits)) = sgn(bits);% ⊦ # bits ≤ n → fillsgn(n, sgn(bits)) = fillsgn(n, bits);%⊦ # bits ≤ n ∧ bits ≠ [] → fillsgn(n, bits) = mklist(bits.first, n - # bits) + bits;% ⊦ boolvar ∈ bits + bits0 ↔ ¬ ¬(boolvar ∈ bits ∨ boolvar ∈ bits0);% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ∈ bits → boolvar ∈ bits0 + bits;% ⊦ boolvar ∈ mklist(boolvar0, n) → (boolvar ↔ boolvar0); (forward)% ⊦ j ≤ j0 ∧ j0 ≤ j1 → j ≤ j1; (forward)% ⊦ boolvar ∈ mklist(boolvar, m) ↔ m ≠ 0;% ⊦ m ≤ n → (n - m = 0 ↔ n = m);% ⊦ m ≠ n → (m ≤ n ↔ m < n);% ⊦ bits.first ∈ bits ↔ bits ≠ []; Used terms: bits2int(bits)