| # buf1 = NODE_HEADER_SIZE, # buf0 = a.alignedsize, @(m0, m1) = @(m, 2 * NODE_HEADER_SIZE + a.alignedsize), is-encoded(a, subarray(buf0, 0, node-size-headerless(a))), is-encoded(nodeheader(node-size-headerless(a), false), buf1) ⊦ ∃ buf, buf2. buf1 + buf0 + validtrailer = buf + buf2 ∧ ( abs-padding(buf) ∧ abs-nodes(buf2, m + # buf, a ', @(m0, m1) ', false) ∨ m0 = m ∧ m1 = # buf ∧ abs-node(buf, a) ∧ abs-nodes(buf2, m + # buf, [], [], false)) |
# buf1 = NODE_HEADER_SIZE, # buf0 = a.alignedsize, is-encoded(a, subarray(buf0, 0, node-size-headerless(a))), is-encoded(nodeheader(node-size-headerless(a), false), buf1) ⊦ ∃ buf, buf2. buf1 + buf0 + validtrailer = buf + buf2 ∧ ( abs-padding(buf) ∧ abs-nodes(buf2, m + # buf, a ', @(m, 2 * NODE_HEADER_SIZE + a.alignedsize) ', false) ∨ 2 * NODE_HEADER_SIZE + a.alignedsize = # buf ∧ abs-node(buf, a) ∧ abs-nodes(buf2, m + # buf, [], [], false))
Used simplifier rules: ⊦ @(m, m0) = @(m1, m2) ↔ m = m1 ∧ m0 = m2; (ws)