| # buf = 2 * NODE_HEADER_SIZE + n0, # buf1 = # buf, subarray(buf1, NODE_HEADER_SIZE, NODE_HEADER_SIZE + n0) = subarray(buf, NODE_HEADER_SIZE, NODE_HEADER_SIZE + n0), is-aligned(n0, 2 * NODE_HEADER_SIZE), is-encoded(nodeheader(n0, true), subarray(buf1, 0, NODE_HEADER_SIZE)) ⊦ buf = mkbuf(0), ∃ buf0, buf2. copy(validtrailer, 0, buf1, NODE_HEADER_SIZE + n0, NODE_HEADER_SIZE) = buf0 + buf2 + validtrailer ∧ is-encoded(nodeheader(# buf2, true), buf0) ∧ is-aligned(# buf2, 2 * NODE_HEADER_SIZE) |
# buf1 = # buf, # buf = 2 * NODE_HEADER_SIZE + n0, subarray(buf1, NODE_HEADER_SIZE, NODE_HEADER_SIZE + n0) = subarray(buf, NODE_HEADER_SIZE, NODE_HEADER_SIZE + n0), is-aligned(n0, 2 * NODE_HEADER_SIZE), is-encoded(nodeheader(n0, true), subarray(buf1, 0, NODE_HEADER_SIZE)) ⊦ buf = mkbuf(0), copy(validtrailer, 0, buf1, NODE_HEADER_SIZE + n0, NODE_HEADER_SIZE) = subarray(buf1, 0, NODE_HEADER_SIZE) + subarray(buf1, NODE_HEADER_SIZE, n0) + validtrailer ∧ is-encoded(nodeheader(# subarray(buf1, NODE_HEADER_SIZE, n0), true), subarray(buf1, 0, NODE_HEADER_SIZE)) ∧ is-aligned(# subarray(buf1, NODE_HEADER_SIZE, n0), 2 * NODE_HEADER_SIZE)
Used terms: subarray(buf1, 0, NODE_HEADER_SIZE), subarray(buf1, NODE_HEADER_SIZE, n0)