| ∃ buf0, buf1. buf = buf0 + buf1 ∧ is-encoded(a, buf0) ∧ # buf = size-aligned(a, ENCODED_ELEM_ALIGNMENT) ⊦ is-aligned(# buf, ENCODED_ELEM_ALIGNMENT) |
# buf1 + # buf0 = size-aligned(a, ENCODED_ELEM_ALIGNMENT), is-encoded(a, buf1) ⊦ is-aligned(size-aligned(a, ENCODED_ELEM_ALIGNMENT), ENCODED_ELEM_ALIGNMENT)
Used simplifier rules: append-a: ⊦ (buf + buf0) + buf1 = buf + buf0 + buf1; from specification array-splice[buffer]% ⊦ #(buf + buf0) = # buf + # buf0; (s)