| # lpt0 = # lpt1, is-encoded(lpt0, buf, n), n ≤ # lpt1 ⊦ # buf = align↑(# lpt1 * ENCODED_LPROPS_SIZE, LEB_SIZE) ∧ (∀ m. m < # lpt1 ∧ m < n → is-encoded(lpt1[m], subarray(buf, m * ENCODED_LPROPS_SIZE, ENCODED_LPROPS_SIZE))) ↔ subarray(lpt0, 0, n) = subarray(lpt1, 0, n) |
⊦ 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)))
# buf = lptsize(# lpt0, LEB_SIZE), # lpt0 = # lpt1, n ≤ # lpt1, ∀ m. m < # lpt0 ∧ m < n → is-encoded(lpt0[m], subarray(buf, m * ENCODED_LPROPS_SIZE, ENCODED_LPROPS_SIZE)) ⊦ # buf = align↑(# lpt1 * ENCODED_LPROPS_SIZE, LEB_SIZE) ∧ (∀ m. m < # lpt1 ∧ m < n → is-encoded(lpt1[m], subarray(buf, m * ENCODED_LPROPS_SIZE, ENCODED_LPROPS_SIZE))) ↔ subarray(lpt0, 0, n) = subarray(lpt1, 0, n)
Used terms: n, buf, lpt0