| # buf0 = EB_PAGE_SIZE, nx0 = m0 + nx1, is-encoded(nx0, buf0 + buf1), is-encoded(rnode(m), buf0), is-encoded(nx, buf1), ∀ nx0, buf. is-encoded(nx0, buf) ∧ is-encoded(nx, buf) → nx0 = nx ⊦ nx0 = m ' + nx |
# buf0 = EB_PAGE_SIZE, # buf = EB_PAGE_SIZE, buf0 + buf1 = buf + buf2, is-encoded(nx, buf1), is-encoded(rnode(m), buf0), is-encoded(rnode(m0), buf), is-encoded(nx1, buf2), ∀ nx0, buf. is-encoded(nx0, buf) ∧ is-encoded(nx, buf) → nx0 = nx ⊦ m0 ' + nx1 = m ' + nx
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)