| # buf1 = # buf, subarray(buf1, n + ENCODED_ELEM_SIZE, # buf - n + ENCODED_ELEM_SIZE) = subarray(buf, n + ENCODED_ELEM_SIZE, # buf - n + ENCODED_ELEM_SIZE), subarray(buf1, 0, n) = subarray(buf, 0, n), is-encoded(a, subarray(buf1, n, ENCODED_ELEM_SIZE)), isempty(buf1, n, ENCODED_ELEM_SIZE), n + ENCODED_ELEM_SIZE ≤ # buf ⊦ ⟪debug#("encoding_nonempty: encoding is empty"); err := EINVAL⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → subarray(buf1, n, ENCODED_ELEM_SIZE) ≠ mkempbuf(ENCODED_ELEM_SIZE))) |
# buf1 = # buf, # buf = n0 + n + ENCODED_ELEM_SIZE, subarray(buf1, 0, n) = subarray(buf, 0, n), subarray(buf1, n + ENCODED_ELEM_SIZE, n0) = subarray(buf, n + ENCODED_ELEM_SIZE, n0), is-encoded(a, subarray(buf1, n, ENCODED_ELEM_SIZE)), isempty(buf1, n, ENCODED_ELEM_SIZE), n + ENCODED_ELEM_SIZE ≤ # buf ⊦ ⟪debug#("encoding_nonempty: encoding is empty"); err := EINVAL⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → subarray(buf1, n, ENCODED_ELEM_SIZE) ≠ mkempbuf(ENCODED_ELEM_SIZE)))
Used simplifier rules: n ≤ m ⊦ n0 = m - n ↔ m = n0 + n; (elim) Used terms: # buf, n + ENCODED_ELEM_SIZE, n0