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