| fillsgn(n, bytes) = by ' + bytes0, # bytes < n, by ∈ fillsgn(n, bytes) ⊦ bytes = [], # bytes = 1, fillsgn(n + 1, bytes).butlast = by ' + fillsgn(n, bytes).butlast, fillsgn(n, bytes) = [] |
⊦ # bytes < n ∧ bytes ≠ [] → fillsgn(n, bytes) = (b2i(bytes.first) < 0 ⊃ i2b(~1);i2b(0)) ' + fillsgn(n -1, bytes)
# bytes < n + 1 ∧ bytes ≠ [], fillsgn(n, bytes) = by ' + bytes0, # bytes < n, by ∈ fillsgn(n, bytes) ⊦ bytes = [], # bytes = 1, ((b2i(bytes.first) < 0 ⊃ i2b(~1);i2b(0)) ' + fillsgn((n + 1)-1, bytes)).butlast = by ' + fillsgn(n, bytes).butlast, fillsgn(n, bytes) = []
Used simplifier rules: ⊦ m < n + 1 ↔ ¬ n < m;% ⊦ m < n → ¬ n < m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m; Used terms: bytes, n + 1