| 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 ' |
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-first: ⊦ byte2bits(by).first ↔ b2i(by) < 0;%byte2bits-empty: ⊦ byte2bits(by) ≠ [];% ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j;% ⊦ ¬ i < j ↔ j ≤ i;