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