| # buf1 = a.alignedsize + 2 * NODE_HEADER_SIZE, abs-node(buf1, a), abs-nodes(buf0, 0, x, lax, false), is-aligned(# buf0 + # buf1, EB_PAGE_SIZE) ⊦ abs-nodes(buf1, # buf0, a ' + [], @(# buf0, # buf1) ', boolvar) |
⊦ abs-nodes(buf, m, a ' + x, lax, weak) ↔ (∃ buf0, buf1. buf = buf0 + buf1 ∧ ( abs-padding(buf0) ∧ abs-nodes(buf1, m + # buf0, a ' + x, lax, weak) ∨ lax ≠ [] ∧ lax.head.off = m ∧ lax.head.size = # buf0 ∧ abs-node(buf0, a) ∧ abs-nodes(buf1, m + # buf0, x, lax.tail, weak)))
# buf1 = a.alignedsize + 2 * NODE_HEADER_SIZE, abs-node(buf1, a), abs-nodes(buf0, 0, x, lax, false), is-aligned(# buf0 + # buf1, EB_PAGE_SIZE) ⊦ ∃ buf3, buf2. buf1 = buf3 + buf2 ∧ ( abs-padding(buf3) ∧ abs-nodes(buf2, # buf0 + # buf3, a ' + [], @(# buf0, # buf1) ', boolvar) ∨ @(# buf0, # buf1) ' ≠ [] ∧ @(# buf0, # buf1) '.head.off = # buf0 ∧ @(# buf0, # buf1) '.head.size = # buf3 ∧ abs-node(buf3, a) ∧ abs-nodes(buf2, # buf0 + # buf3, [], @(# buf0, # buf1) '.tail, boolvar))
Used terms: boolvar, @(# buf0, # buf1) ', [], a, # buf0, buf1