| # bytes < m + 1 ∧ 0 ≤ bytes2int(bytes), # bytes ≤ m, 0 ≤ bytes2int(bytes) ⊦ mklist(i2b(0), m + 1 - # bytes) + bytes = (¬ 0 ≤ b2i(bytes.first) ⊃ i2b(~1);i2b(0)) ' + fillsgn(m, bytes), bytes = [] |
# bytes ≤ m, 0 ≤ bytes2int(bytes) ⊦ bytes = [], mklist(i2b(0), (m - # bytes) + 1) + bytes = (¬ 0 ≤ b2i(bytes.first) ⊃ i2b(~1);i2b(0)) ' + fillsgn(m, bytes)
Used simplifier rules: ⊦ 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;