| # bytes < n + 1 ∧ bytes2int(bytes) < 0, # bytes ≤ n ⊦ fillsgn(n, bytes.butlast) = (mklist(i2b(~1), n + 1 - # bytes) + bytes).butlast, # bytes = 1, bytes = [] |
# bytes ≤ n, bytes2int(bytes) < 0 ⊦ # bytes = 1, bytes = [], fillsgn(n, bytes.butlast) = mklist(i2b(~1), (n - # bytes) + 1) + bytes.butlast
Used simplifier rules: ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ m ≤ n → (n < m ↔ false);% ⊦ m < n + 1 ↔ ¬ n < m;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ bytes ≠ [] → (bytes0 + bytes).butlast = bytes0 + bytes.butlast;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ n ≤ m → m + n0 - n = (m - n) + n0;