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