| n < # bytes ⊦ bytes = [], # bytes = 1, n = 0, fix(n, bytes.butlast) = fix(n + 1, bytes).butlast |
⊦ # bytes ≥ n → fix(n, bytes) = lastn(n, bytes)
# bytes.butlast ≥ n, n < # bytes ⊦ bytes = [], # bytes = 1, n = 0, lastn(n, bytes.butlast) = fix(n + 1, bytes).butlast
Used simplifier rules: ⊦ bytes ≠ [] → # bytes.butlast = # bytes - 1;% ⊦ n ≥ m ↔ m ≤ n;% ⊦ # bytes = 0 ↔ bytes = [];% ⊦ m < 1 ↔ m = 0;% ⊦ ¬ m ≤ n ↔ n < m;%n0 ≤ n ⊦ m ≤ n - n0 ↔ m + n0 ≤ n;% ⊦ m + 1 ≤ n ↔ m < n;% ⊦ ¬ m < n ↔ n ≤ m;% ⊦ m < n → (n ≤ m ↔ false);% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m; Used terms: bytes.butlast, n