| n + ENCODED_ELEM_SIZE ≤ # buf ⊦ ⟪if isempty(buf, n, ENCODED_ELEM_SIZE) then err := EINVAL else let m = ? in decode#(n, buf; a, m; err)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded-nonempty(a, subarray(buf, n, ENCODED_ELEM_SIZE)))) |
isempty(buf, n, ENCODED_ELEM_SIZE), n + ENCODED_ELEM_SIZE ≤ # buf ⊦ ⟪err := EINVAL⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded-nonempty(a, subarray(buf, n, ENCODED_ELEM_SIZE))))
n + ENCODED_ELEM_SIZE ≤ # buf ⊦ ⟪let m = ? in decode#(n, buf; a, m; err)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded-nonempty(a, subarray(buf, n, ENCODED_ELEM_SIZE)))), isempty(buf, n, ENCODED_ELEM_SIZE)