| is-aligned(m, NODE_HEADER_SIZE), is-aligned(# buf, NODE_HEADER_SIZE), range=(buf, m, validtrailer, 0, NODE_HEADER_SIZE) ⊦ m + NODE_HEADER_SIZE ≤ # buf + n ∧ (n0 < NODE_HEADER_SIZE → (buf + mkempbuf(n))[m + n0] = (validtrailer)[n0]) |
⊦ range=(buf, n0, buf0, n1, m) ↔ n0 + m ≤ # buf ∧ n1 + m ≤ # buf0 ∧ (∀ n. n < m → buf[n0 + n] = buf0[n1 + n])
is-aligned(# buf, NODE_HEADER_SIZE), is-aligned(m, NODE_HEADER_SIZE), m + NODE_HEADER_SIZE ≤ # buf, 0 + NODE_HEADER_SIZE ≤ # validtrailer, ∀ n. n < NODE_HEADER_SIZE → buf[m + n] = (validtrailer)[0 + n] ⊦ m + NODE_HEADER_SIZE ≤ # buf + n ∧ (n0 < NODE_HEADER_SIZE → (buf + mkempbuf(n))[m + n0] = (validtrailer)[n0])
Used terms: NODE_HEADER_SIZE, 0, validtrailer, m, buf