| buf0 = buf, n + size-aligned(a, ENCODED_ELEM_ALIGNMENT) ≤ # buf ⊦ ⟪encode_aligned#(a, n, ENCODED_ELEM_ALIGNMENT; buf, n0; err)⟫ ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ # buf = # buf0 ∧ ( err = ESUCCESS → is-encoded-aligned(a, subarray(buf, n, size-aligned(a, ENCODED_ELEM_ALIGNMENT))) ∧ n0 = size-aligned(a, ENCODED_ELEM_ALIGNMENT))) |
⊦
buf0 = buf, m = ENCODED_ELEM_ALIGNMENT, n + size-aligned(a, ENCODED_ELEM_ALIGNMENT) ≤ # buf ⊦ ⟪encode#(a, n; buf, n0; err); if err = ESUCCESS then n0 := align↑(n0, m)⟫ ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ # buf = # buf0 ∧ ( err = ESUCCESS → is-encoded-aligned(a, subarray(buf, n, size-aligned(a, ENCODED_ELEM_ALIGNMENT))) ∧ n0 = size-aligned(a, ENCODED_ELEM_ALIGNMENT)))
Used simplifier rules: encode: ⊦ ;