| is-encoded(a, subarray(buf, n, encoding-size(a))), n + encoding-size(a) ≤ # buf, n + align↑(encoding-size(a), ENCODED_ELEM_ALIGNMENT) ≤ # buf ⊦ is-encoded-aligned(a, subarray(buf, n, size-aligned(a, ENCODED_ELEM_ALIGNMENT))) ∧ n + size-aligned(a, ENCODED_ELEM_ALIGNMENT) ≤ # buf ∧ align↑(encoding-size(a), ENCODED_ELEM_ALIGNMENT) = size-aligned(a, ENCODED_ELEM_ALIGNMENT) |
⊦ size-aligned(a, m) = align↑(encoding-size(a), m)
is-encoded(a, subarray(buf, n, encoding-size(a))), n + align↑(encoding-size(a), ENCODED_ELEM_ALIGNMENT) ≤ # buf, n + encoding-size(a) ≤ # buf ⊦ is-encoded-aligned(a, subarray(buf, n, align↑(encoding-size(a), ENCODED_ELEM_ALIGNMENT))) ∧ n + align↑(encoding-size(a), ENCODED_ELEM_ALIGNMENT) ≤ # buf ∧ align↑(encoding-size(a), ENCODED_ELEM_ALIGNMENT) = align↑(encoding-size(a), ENCODED_ELEM_ALIGNMENT)
Used terms: ENCODED_ELEM_ALIGNMENT, a