| lax.head = @(m0, m1), is-encoded(nodeheader(m, boolvar0), subarray(buf1 + buf0, 0, NODE_HEADER_SIZE)), 2 * NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE) ≤ # buf1 + # buf0, abs-padding(buf1) ∧ abs-nodes(buf0, n + # buf1, nd ' + x0, lax, weak) ∨ lax ≠ [] ∧ m0 = n ∧ m1 = # buf1 ∧ abs-node(buf1, nd) ∧ abs-nodes(buf0, n + # buf1, x0, lax.tail, weak) ⊦ range=(buf1 + buf0, NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE), validtrailer, 0, NODE_HEADER_SIZE) |
⊦ range=(buf, n0, buf0, n1, m) ↔ n0 + m ≤ # buf ∧ n1 + m ≤ # buf0 ∧ subarray(buf, n0, m) = subarray(buf0, n1, m)
lax.head = @(m0, m1), is-encoded(nodeheader(m, boolvar0), subarray(buf1 + buf0, 0, NODE_HEADER_SIZE)), 2 * NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE) ≤ # buf1 + # buf0, abs-padding(buf1) ∧ abs-nodes(buf0, n + # buf1, nd ' + x0, lax, weak) ∨ lax ≠ [] ∧ m0 = n ∧ m1 = # buf1 ∧ abs-node(buf1, nd) ∧ abs-nodes(buf0, n + # buf1, x0, lax.tail, weak) ⊦ (NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE)) + NODE_HEADER_SIZE ≤ #(buf1 + buf0) ∧ 0 + NODE_HEADER_SIZE ≤ # validtrailer ∧ subarray(buf1 + buf0, NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE), NODE_HEADER_SIZE) = subarray(validtrailer, 0, NODE_HEADER_SIZE)
Used terms: NODE_HEADER_SIZE, 0, validtrailer, NODE_HEADER_SIZE + align↑(m, 2 * NODE_HEADER_SIZE), buf1 + buf0