| n + ENCODED_ELEM_SIZE ≤ # buf, ¬ isempty(buf, n, ENCODED_ELEM_SIZE) ⊦ [decode#(n, buf; a, m; err)] ( is-encoded(a, subarray(buf, n, ENCODED_ELEM_SIZE)) ∧ m = ENCODED_ELEM_SIZE → err = ESUCCESS → subarray(buf, n, ENCODED_ELEM_SIZE) ≠ mkempbuf(ENCODED_ELEM_SIZE)) |
n + ENCODED_ELEM_SIZE ≤ # buf ⊦ isempty(buf, n, ENCODED_ELEM_SIZE), ∀ a, m, err. is-encoded(a, subarray(buf, n, ENCODED_ELEM_SIZE)) ∧ m = ENCODED_ELEM_SIZE → err = ESUCCESS → subarray(buf, n, ENCODED_ELEM_SIZE) ≠ mkempbuf(ENCODED_ELEM_SIZE)