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