| n + encoding-size(a) ≤ # buf, buf0 = buf ⊦ ⟪encode#(a, n; buf, n0; err)⟫ ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ # buf = # buf0 ∧ subarray(buf, 0, n) = subarray(buf0, 0, n) ∧ subarray(buf, n + encoding-size(a), # buf - n + encoding-size(a)) = subarray(buf0, n + encoding-size(a), # buf - n + encoding-size(a)) ∧ (err = ESUCCESS → is-encoded(a, subarray(buf, n, encoding-size(a))) ∧ n0 = encoding-size(a))) |