| lax.head = @(m0, m1), # buf1 + # buf0 < NODE_HEADER_SIZE, abs-padding(buf1) ∧ abs-nodes(buf0, m + # buf1, nd ' + x0, lax, boolvar) ∨ lax ≠ [] ∧ m0 = m ∧ m1 = # buf1 ∧ abs-node(buf1, nd) ∧ abs-nodes(buf0, m + # buf1, x0, lax.tail, boolvar) ⊦ |
⊦ abs-node(buf, nd) ↔ (∃ buf0, buf1. buf = buf0 + buf1 + validtrailer ∧ is-encoded(nodeheader(node-size-headerless(nd), false), buf0) ∧ is-encoded(nd, subarray(buf1, 0, node-size-headerless(nd))) ∧ # buf1 = nd.alignedsize)
lax.head = @(m0, m1), # buf1 + # buf0 < NODE_HEADER_SIZE, abs-padding(buf1) ∧ abs-nodes(buf0, m + # buf1, nd ' + x0, lax, boolvar) ∨ lax ≠ [] ∧ m0 = m ∧ m1 = # buf1 ∧ (∃ buf0, buf2. buf1 = buf0 + buf2 + validtrailer ∧ is-encoded(nodeheader(node-size-headerless(nd), false), buf0) ∧ is-encoded(nd, subarray(buf2, 0, node-size-headerless(nd))) ∧ # buf2 = nd.alignedsize) ∧ abs-nodes(buf0, m + # buf1, x0, lax.tail, boolvar) ⊦
Used terms: nd, buf1