| is-aligned(# buf, EB_PAGE_SIZE), is-encoded(m + nx0, buf + emptypage), ∀ buf. ¬(is-aligned(# buf, EB_PAGE_SIZE) ∧ is-encoded(nx0, buf + emptypage)) ⊦ |
# buf0 = EB_PAGE_SIZE, buf + emptypage = buf0 + buf1, is-aligned(# buf, EB_PAGE_SIZE), is-encoded(rnode(m), buf0), is-encoded(nx0, buf1), ∀ buf2. ¬ is-aligned(# buf2, EB_PAGE_SIZE) ∨ ¬ is-encoded(nx0, buf2 + emptypage) ⊦
Used simplifier rules: is-encoded-rec: ⊦ is-encoded(n ' + nx, buf) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(rnode(n), buf0) ∧ is-encoded(nx, buf1));%is-encoded-size: ⊦ is-encoded(rnd, buf) → # buf = EB_PAGE_SIZE; (forward) from specification encoding-page-size-nonempty[encoding-ref-node]%a: ⊦ (nx + nx0) + nx1 = nx + nx0 + nx1; from specification list[nat-list-set]% ⊦ n + nx = n ' + nx; (s)