| abs-nodes(buf1, n + # buf0, [], [], weak), abs-padding(buf0), is-encoded(nodeheader(m, boolvar0), subarray(buf0, 0, NODE_HEADER_SIZE)), 2 * NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE) ≤ # buf0 + # buf1 ⊦ buf0 + buf1 = mkbuf(0), range=(buf0 + buf1, NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE), validtrailer, 0, NODE_HEADER_SIZE) |
⊦ abs-padding(buf) ↔ (∃ buf0, buf1. buf = buf0 + buf1 + validtrailer ∧ is-encoded(nodeheader(# buf1, true), buf0) ∧ is-aligned(# buf1, 2 * NODE_HEADER_SIZE))
abs-nodes(buf1, n + # buf0, [], [], weak), is-encoded(nodeheader(m, boolvar0), subarray(buf0, 0, NODE_HEADER_SIZE)), 2 * NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE) ≤ # buf0 + # buf1, ∃ buf2, buf1. buf0 = buf2 + buf1 + validtrailer ∧ is-encoded(nodeheader(# buf1, true), buf2) ∧ is-aligned(# buf1, 2 * NODE_HEADER_SIZE) ⊦ buf0 + buf1 = mkbuf(0), range=(buf0 + buf1, NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE), validtrailer, 0, NODE_HEADER_SIZE)
Used terms: buf0