| # buf1 = # buf, err = ESUCCESS, subarray(buf1, n + encoding-size(a), # buf - n + encoding-size(a)) = subarray(buf, n + encoding-size(a), # buf - n + encoding-size(a)), subarray(buf1, 0, n) = subarray(buf, 0, n), n + size-aligned(a, ENCODED_ELEM_ALIGNMENT) ≤ # buf, n + encoding-size(a) ≤ # buf, err = ESUCCESS → is-encoded(a, subarray(buf1, n, encoding-size(a))) ∧ n0 = encoding-size(a), err = ESUCCESS ∨ ⌊err⌋ ⊦ ⟪n0 := align↑(n0, ENCODED_ELEM_ALIGNMENT)⟫ ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ ( err = ESUCCESS → is-encoded-aligned(a, subarray(buf1, n, size-aligned(a, ENCODED_ELEM_ALIGNMENT))) ∧ n0 = size-aligned(a, ENCODED_ELEM_ALIGNMENT))) |
# buf1 = # buf, err = ESUCCESS, subarray(buf1, 0, n) = subarray(buf, 0, n), subarray(buf1, n + encoding-size(a), # buf - n + encoding-size(a)) = subarray(buf, n + encoding-size(a), # buf - n + encoding-size(a)), n + encoding-size(a) ≤ # buf, n + size-aligned(a, ENCODED_ELEM_ALIGNMENT) ≤ # buf, err = ESUCCESS → is-encoded(a, subarray(buf1, n, encoding-size(a))) ∧ n0 = encoding-size(a), err = ESUCCESS ∨ ⌊err⌋ ⊦ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ ( err = ESUCCESS → is-encoded-aligned(a, subarray(buf1, n, size-aligned(a, ENCODED_ELEM_ALIGNMENT))) ∧ align↑(n0, ENCODED_ELEM_ALIGNMENT) = size-aligned(a, ENCODED_ELEM_ALIGNMENT))