| buf0 = buf, is-aligned(# buf, 2 * NODE_HEADER_SIZE) ⊦ ⟪let m = # buf - 2 * NODE_HEADER_SIZE in {encode_header#(nodeheader(m, true), 0; buf; err); buf := copy(validtrailer, 0, buf, # buf - NODE_HEADER_SIZE, NODE_HEADER_SIZE)}⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ # buf = # buf0 ∧ (err = ESUCCESS → abs-padding(buf))), buf = mkbuf(0) |
buf0 = buf, m = # buf - 2 * NODE_HEADER_SIZE, is-aligned(# buf, 2 * NODE_HEADER_SIZE), # buf ≥ 2 * NODE_HEADER_SIZE ⊦ ⟪encode_header#(nodeheader(m, true), 0; buf; err); buf := copy(validtrailer, 0, buf, # buf - NODE_HEADER_SIZE, NODE_HEADER_SIZE)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ # buf = # buf0 ∧ (err = ESUCCESS → abs-padding(buf))), buf = mkbuf(0)
buf0 = buf, is-aligned(# buf, 2 * NODE_HEADER_SIZE) ⊦ buf = mkbuf(0), # buf ≥ 2 * NODE_HEADER_SIZE