| # buf3 = NODE_HEADER_SIZE, # buf5 = NODE_HEADER_SIZE, # buf6 = nd.alignedsize, buf5 + (buf6 + validtrailer) + buf1 = buf3 + (buf4 + validtrailer) + buf2, is-aligned(# buf4, 2 * NODE_HEADER_SIZE), is-encoded(nd, subarray(buf6, 0, node-size-headerless(nd))), is-encoded(nodeheader(node-size-headerless(nd), false), buf5), is-encoded(nodeheader(# buf4, true), buf3) ⊦ |
⊦ # buf = # buf0 → (buf + buf1 = buf0 + buf2 ↔ buf = buf0 ∧ buf1 = buf2)
Used simplifier rules: ⊦ is-encoded(ndhd, buf) → (is-encoded(ndhd0, buf) ↔ ndhd = ndhd0); (s)%⊦ nodeheader(m, boolvar) = nodeheader(m0, boolvar0) ↔ m = m0 ∧ (boolvar ↔ boolvar0); (ws)%# buf = n ⊦ subarray(buf, 0, n) = buf; (s) Used terms: (buf4 + validtrailer) + buf2, buf3, (buf6 + validtrailer) + buf1, buf5