| 8 < n0 * 8, ∀ n1. n1 < n0 * 8 → n1 % 8 = 0 → n1 = 0 ∨ bits2bytes(mklist(true, n1)) = mklist(i2b(~1), n1 / 8) ⊦ n0 = 0, bits2bytes(mklist(true, n0 * 8 - 8)) + i2b(~1) ' = mklist(i2b(~1), n0) |
8 < n0 * 8, ∀ n1. n1 < n0 * 8 → n1 % 8 = 0 → n1 = 0 ∨ bits2bytes(mklist(true, n1)) = mklist(i2b(~1), n1 / 8) ⊦ (n0 * 8 - 8) % 8 = 0, n0 = 0, bits2bytes(mklist(true, n0 * 8 - 8)) + i2b(~1) ' = mklist(i2b(~1), n0)
n0 * 8 - 8 = 0 ∨ bits2bytes(mklist(true, n0 * 8 - 8)) = mklist(i2b(~1), (n0 * 8 - 8) / 8), 8 < n0 * 8, ∀ n1. n1 < n0 * 8 → n1 % 8 = 0 → n1 = 0 ∨ bits2bytes(mklist(true, n1)) = mklist(i2b(~1), n1 / 8) ⊦ n0 = 0, bits2bytes(mklist(true, n0 * 8 - 8)) + i2b(~1) ' = mklist(i2b(~1), n0)
Used simplifier rules: ⊦ m * n = n * m;% ⊦ m0 * m * n = (m0 * m) * n;% ⊦ m0 * m < m ↔ m0 = 0 ∧ m ≠ 0;% ⊦ ¬ m ≤ n ↔ n < m;%n0 ≤ n ⊦ n - n0 < m ↔ n < m + n0;% ⊦ m * n < m1 * n + n ↔ ¬ ¬(m < m1 + 1 ∧ n ≠ 0);% ⊦ m < n + 1 ↔ ¬ n < m;% ⊦ ¬ n < n;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m; Used terms: n0 * 8 - 8