| is-aligned(n, EB_PAGE_SIZE), n ≤ # buf ⊦ datasize(buf, align↑(datasize(buf, n), EB_PAGE_SIZE)) = datasize(buf, n), align↑(datasize(buf, n), EB_PAGE_SIZE) ≤ # buf ∧ align↑(datasize(buf, n), EB_PAGE_SIZE) ≤ n |
n ≠ 0 ⊦ is-aligned(m0, n) ∧ m0 ≥ m → align↑(m, n) ≤ m0
Used simplifier rules: ⊦ EB_PAGE_SIZE ≠ 0; (s)% ⊦ n ≥ m ↔ m ≤ n; (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%let: ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward) from specification nat%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat% ⊦ m < n → n ≠ 0; (s)%n ≠ 0, is-aligned(m, n) ⊦ m < align↑(m0, n) ↔ m < m0; (s)% ⊦ m ≤ n → (n < m ↔ false); (s)% ⊦ ¬ n < datasize(buf, n); (s)%n ≠ 0, m % n = 0 ⊦ align↑(m, n) = m; (s)%n ≤ # buf ⊦ datasize(buf, datasize(buf, n)) = datasize(buf, n); (s) Used terms: n, EB_PAGE_SIZE, datasize(buf, n)