| bits2int(fillsgn(8, uint2bits(bits2uint(firstn(# bits0 % 8, bits0)))) + bytes2bits(bits2bytes(restn(# bits0 % 8, bits0)))) < 0, 0 ≤ bits2uint(firstn(# bits0 % 8, bits0)), # bits0 % 8 < # bits0, # bits0 % 8 ≤ 7, 7 < # bits0, bits2uint(firstn(# bits0 % 8, bits0)) ≤ 127 ⊦ (# bits0 + 1) % 8 = 0, bits0 = [] |
⊦ bits ≠ [] → (bits2int(bits) < 0 ↔ bits.first)
fillsgn(8, uint2bits(bits2uint(firstn(# bits0 % 8, bits0)))) + bytes2bits(bits2bytes(restn(# bits0 % 8, bits0))) ≠ [], (fillsgn(8, uint2bits(bits2uint(firstn(# bits0 % 8, bits0)))) + bytes2bits(bits2bytes(restn(# bits0 % 8, bits0)))).first, 0 ≤ bits2uint(firstn(# bits0 % 8, bits0)), # bits0 % 8 < # bits0, # bits0 % 8 ≤ 7, 7 < # bits0, bits2uint(firstn(# bits0 % 8, bits0)) ≤ 127 ⊦ (# bits0 + 1) % 8 = 0, bits0 = []
Used simplifier rules: ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ fillsgn(n, bits) = [] ↔ bits = [] ∧ n = 0;% ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j;%0 ≤ i ⊦ uint2bits(i) ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1; Used terms: fillsgn(8, uint2bits(bits2uint(firstn(# bits0 % 8, bits0)))) + bytes2bits(bits2bytes(restn(# bits0 % 8, bits0)))