| b2i(by0) = ~1, 0 ≤ b2i(by), ∀ bytes1. # bytes1 < #((by0 + []) + by ') → b2i(bytes1.first) = ~1 ∧ 0 ≤ b2i(bytes1.rest.first) → bits2bytes(sgn(bytes2bits(bytes1))) = bytes1 ∨ # bytes1 = 1 ∨ bytes1 = [] ⊦ bits2bytes(sgn(true ' + byte2bits(by))) = by0 ' + by ' |
⊦ bits ≠ [] ∧ (bits.first ↔ ¬ boolvar) → sgn(boolvar ' + bits) = boolvar ' + bits
byte2bits(by) ≠ [] ∧ (byte2bits(by).first ↔ ¬ true), b2i(by0) = ~1, 0 ≤ b2i(by), ∀ bytes1. # bytes1 < #((by0 + []) + by ') → b2i(bytes1.first) = ~1 ∧ 0 ≤ b2i(bytes1.rest.first) → bits2bytes(sgn(bytes2bits(bytes1))) = bytes1 ∨ # bytes1 = 1 ∨ bytes1 = [] ⊦ bits2bytes(true ' + byte2bits(by)) = by0 ' + by '
Used simplifier rules: byte2bits-empty: ⊦ byte2bits(by) ≠ [];%byte2bits-first: ⊦ byte2bits(by).first ↔ b2i(by) < 0;% ⊦ i ≤ j → (¬ ¬ j < i ↔ false); Used terms: byte2bits(by), true