| # buf = LEB_SIZE, m + n + # buf0 = LEB_SIZE, subarray(buf, m, n + # buf0) = mkempbuf(n + # buf0), aehdr.valid?, is-aligned(m, EB_PAGE_SIZE), m + n ≤ LEB_SIZE, m4 ≤ datasize(buf, m), m4 ≤ LEB_SIZE, m4 ≤ m + n ⊦ aehdr = empty, checksum(buf, m4) = checksum(subarray(buf, 0, m + n), m4), m4 = 0 |
⊦ n ≤ # buf0 ∧ n ≤ # buf1 ∧ subarray(buf0, 0, n) = subarray(buf1, 0, n) → checksum(buf0, n) = checksum(buf1, n)
Used simplifier rules: ⊦ # subarray(buf, m, n) = n; (s)% ⊦ m ≠ n → (m ≤ n ↔ m < n); (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat% ⊦ LEB_SIZE ≠ 0; (s)%n2 ≤ n1 ⊦ n1 < # buf → subarray(subarray(buf, 0, n1), 0, n2) = subarray(buf, 0, n2); (s)% ⊦ subarray(buf, n0, n1) = subarray(buf, n0, n2) ↔ n1 = n2; (ss)%# buf = n ⊦ subarray(buf, 0, n) = buf; (s) Used terms: buf, m4, subarray(buf, 0, m + n)