| ∀ nx1, buf. is-encoded(nx + nx1, buf) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(nx, buf0) ∧ is-encoded(nx1, buf1)), ∃ buf0, buf1. buf = buf0 + buf1 ∧ (∃ buf2, buf1. buf0 = buf2 + buf1 ∧ is-encoded(rnode(m), buf2) ∧ is-encoded(nx, buf1)) ∧ is-encoded(nx1, buf1) ⊦ ∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(rnode(m), buf0) ∧ is-encoded(nx + nx1, buf1) |
# buf3 = EB_PAGE_SIZE, is-encoded(rnode(m), buf3), is-encoded(nx, buf2), is-encoded(nx1, buf0), ∀ nx1, buf. is-encoded(nx + nx1, buf) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(nx, buf0) ∧ is-encoded(nx1, buf1)) ⊦ ∃ buf, buf4. (buf3 + buf2) + buf0 = buf + buf4 ∧ is-encoded(rnode(m), buf) ∧ is-encoded(nx + nx1, buf4)
Used simplifier rules: is-encoded-size: ⊦ is-encoded(rnd, buf) → # buf = EB_PAGE_SIZE; (forward) from specification encoding-page-size-nonempty[encoding-ref-node]