| n = n0 + # bits ∧ # bits ≤ n, m < n, # bits < n, m < # bits, m + 1 < n ⊦ lastn(m, mklist(bits.first, n0) + bits) = lastn(m, bits), bits = [] |
m < n0 + # bits, m + 1 < n0 + # bits, m < # bits ⊦ n0 = 0, bits = [], lastn(m, mklist(bits.first, n0) + bits) = lastn(m, bits)
Used simplifier rules: ⊦ m < n → n ≠ 0;% ⊦ m < n → n ≠ 0; (forward)% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m < m + n ↔ n ≠ 0;% ⊦ m < n → m ≤ n;