| 8 = # fillsgn(8, int2bits(b2i(by0))), b2i(by) = 0, b2i(by0) < 0, ∀ by0, by, bytes0. # bytes0 < # [] → b2i(by) = 0 ∧ b2i(by0) < 0 → bits2bytes(sgn(byte2bits(by) + byte2bits(by0) + bytes2bits(bytes0))) = by ' + by0 ' + bytes0 ⊦ fillsgn(8, int2bits(b2i(by0))) = [], bits2bytes(firstn(1, false ' + fillsgn(8, int2bits(b2i(by0))))) = by ' |
⊦ bits ≠ [] → firstn(1, bits) = bits.first '
false ' + fillsgn(8, int2bits(b2i(by0))) ≠ [], 8 = # fillsgn(8, int2bits(b2i(by0))), b2i(by) = 0, b2i(by0) < 0, ∀ by0, by, bytes0. # bytes0 < # [] → b2i(by) = 0 ∧ b2i(by0) < 0 → bits2bytes(sgn(byte2bits(by) + byte2bits(by0) + bytes2bits(bytes0))) = by ' + by0 ' + bytes0 ⊦ fillsgn(8, int2bits(b2i(by0))) = [], bits2bytes((false ' + fillsgn(8, int2bits(b2i(by0)))).first ') = by '
Used simplifier rules: ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ boolvar ' ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1; Used terms: false ' + fillsgn(8, int2bits(b2i(by0)))