| # buf0 = # buf1, subarray(buf0, 0, n * ENCODED_LPROPS_SIZE) = subarray(buf1, 0, n * ENCODED_LPROPS_SIZE), n < # lpt, is-encoded(lpt, buf0, n), is-encoded(lpt[n], subarray(buf1, n * ENCODED_LPROPS_SIZE, ENCODED_LPROPS_SIZE)), n * ENCODED_LPROPS_SIZE + ENCODED_LPROPS_SIZE ≤ # buf1 ⊦ is-encoded(lpt, buf1, n + 1) |
⊦ is-encoded(lpt, buf, n) ↔ # buf = lptsize(# lpt, LEB_SIZE) ∧ (∀ m. m < # lpt ∧ m < n → is-encoded(lpt[m], subarray(buf, m * ENCODED_LPROPS_SIZE, ENCODED_LPROPS_SIZE)))
# buf0 = # buf1, subarray(buf0, 0, n * ENCODED_LPROPS_SIZE) = subarray(buf1, 0, n * ENCODED_LPROPS_SIZE), n < # lpt, is-encoded(lpt[n], subarray(buf1, n * ENCODED_LPROPS_SIZE, ENCODED_LPROPS_SIZE)), is-encoded(lpt, buf0, n), n * ENCODED_LPROPS_SIZE + ENCODED_LPROPS_SIZE ≤ # buf1 ⊦ # buf1 = lptsize(# lpt, LEB_SIZE) ∧ (∀ m. m < # lpt ∧ m < n + 1 → is-encoded(lpt[m], subarray(buf1, m * ENCODED_LPROPS_SIZE, ENCODED_LPROPS_SIZE)))
Used terms: n + 1, buf1, lpt