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