| # bytes = m + 1, ∀ by. by ∈ bytes → b2i(by) = 0 ⊦ # mklist(i2b(0), m + 1) = # bytes ∧ (∀ n. n < # mklist(i2b(0), m + 1) → mklist(i2b(0), m + 1)[n] = bytes[n]), bytes = [], m = 0 |
# bytes = m + 1, n ≤ m, ∀ by. by ∈ bytes → b2i(by) = 0 ⊦ bytes = [], m = 0, (mklist(i2b(0), m) + i2b(0) ')[n] = bytes[n]
Used simplifier rules: ⊦ ¬ m < n ↔ n ≤ m;% ⊦ m < n + 1 ↔ ¬ n < m;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ # by ' = 0 +1;% ⊦ # mklist(by, n) = n;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ mklist(by, 1) = by ';% ⊦ mklist(by, m + n) = mklist(by, m) + mklist(by, n);