| # buf = lptsize(n1 + n0, LEB_SIZE), # lpt = n1 + n0, buf = buf, buf1 = buf, lp0 = lpt[n0], n2 = n0 * ENCODED_LPROPS_SIZE, is-encoded(lpt, buf, n0), n0 * ENCODED_LPROPS_SIZE + encoding-size(lpt[n0]) ≤ # buf ⊦ [encode_lprops#(lpt[n0], n0 * ENCODED_LPROPS_SIZE; buf, m; err)] ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ # buf = # buf1 ∧ subarray(buf, 0, n2) = subarray(buf1, 0, n2) ∧ subarray(buf, n2 + encoding-size(lp0), # buf - n2 + encoding-size(lp0)) = subarray(buf1, n2 + encoding-size(lp0), # buf - n2 + encoding-size(lp0)) ∧ (err = ESUCCESS → is-encoded(lp0, subarray(buf, n2, encoding-size(lp0))) ∧ m = encoding-size(lp0)) → ⟪n := n0 + 1⟫ ( n ≤ # lpt ∧ # buf = lptsize(# lpt, LEB_SIZE) ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded(lpt, buf, n)) ∧ # lpt < n1 + n)), n1 = 0 |
# lpt = n1 + n0, # buf = lptsize(n1 + n0, LEB_SIZE), buf1 = buf, n1 ≠ 0, is-encoded(lpt, buf, n0), n0 * ENCODED_LPROPS_SIZE + ENCODED_LPROPS_SIZE ≤ # buf ⊦ [encode_lprops#(lpt[n0], n0 * ENCODED_LPROPS_SIZE; buf, m; err)] ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ # buf = # buf1 ∧ subarray(buf, 0, n0 * ENCODED_LPROPS_SIZE) = subarray(buf1, 0, n0 * ENCODED_LPROPS_SIZE) ∧ subarray(buf, n0 * ENCODED_LPROPS_SIZE + ENCODED_LPROPS_SIZE, # buf - n0 * ENCODED_LPROPS_SIZE + ENCODED_LPROPS_SIZE) = subarray(buf1, n0 * ENCODED_LPROPS_SIZE + ENCODED_LPROPS_SIZE, # buf - n0 * ENCODED_LPROPS_SIZE + ENCODED_LPROPS_SIZE) ∧ (err = ESUCCESS → is-encoded(lpt[n0], subarray(buf, n0 * ENCODED_LPROPS_SIZE, ENCODED_LPROPS_SIZE)) ∧ m = ENCODED_LPROPS_SIZE) → ⟪n := n0 + 1⟫ ( n ≤ # lpt ∧ # buf = lptsize(# lpt, LEB_SIZE) ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded(lpt, buf, n)) ∧ # lpt < n1 + n))
Used simplifier rules: ⊦ encoding-size(lp) = ENCODED_LPROPS_SIZE; (s)