| is-aligned(m, NODE_HEADER_SIZE), is-aligned(# buf, NODE_HEADER_SIZE), range=(buf + mkempbuf(n), m, validtrailer, 0, NODE_HEADER_SIZE) ⊦ range=(buf, m, 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)
subarray(buf + mkempbuf(n), m, NODE_HEADER_SIZE) = subarray(validtrailer, 0, NODE_HEADER_SIZE), is-aligned(# buf, NODE_HEADER_SIZE), is-aligned(m, NODE_HEADER_SIZE), m + NODE_HEADER_SIZE ≤ #(buf + mkempbuf(n)), 0 + NODE_HEADER_SIZE ≤ # validtrailer ⊦ range=(buf, m, validtrailer, 0, NODE_HEADER_SIZE)
Used terms: NODE_HEADER_SIZE, 0, validtrailer, m, buf + mkempbuf(n)