| # buf0 = EB_PAGE_SIZE, # buf = 0, emptypage = buf0 + buf1, nx0 = m0 + nx, is-encoded(rnode(m), buf0), is-encoded(nx0, buf1), ∀ buf2. ¬ is-aligned(# buf2, EB_PAGE_SIZE) ∨ ¬ is-encoded(nx0, buf2 + emptypage) ⊦ |
# buf2 = EB_PAGE_SIZE, # buf0 = EB_PAGE_SIZE, # buf = 0, emptypage = buf0 + buf2 + buf3, is-encoded(nx, buf3), is-encoded(rnode(m0), buf2), is-encoded(rnode(m), buf0), ∀ buf4. ¬ is-aligned(# buf4, EB_PAGE_SIZE) ∨ ¬(∃ buf0, buf1. buf4 + emptypage = buf0 + buf1 ∧ is-encoded(rnode(m0), buf0) ∧ is-encoded(nx, buf1)) ⊦
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)