| restn(n, bits) = [], # bits = m * 8 + n, 8 < # bits, n < 8 ⊦ m = 0, m * 8 = 1, bits = [], n = 0 |
⊦ n ≤ # bits → (restn(n, bits) = [] ↔ n = # bits)
Used simplifier rules: ⊦ m * n = n * m;% ⊦ m0 * m * n = (m0 * m) * n;% ⊦ m0 * m = 0 ↔ m0 = 0 ∨ m = 0;% ⊦ m = m + n ↔ n = 0;% ⊦ ¬ m ≤ n ↔ n < m;% ⊦ m < n → n ≠ 0;% ⊦ n < n0 ∧ n0 < n1 → n +1 < n1; (forward)% ⊦ m < n ∧ m = n0 → n0 < n; (forward)% ⊦ m < n → n ≠ 0; (forward)% ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward)% ⊦ m +1 = m + 1;%n < n0 ⊦ m + (* n) < (* n0) ↔ m < n0 - n;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m;% ⊦ ¬ m + n < m; Used terms: bits, n