| # buf = lptsize(# lpt2, LEB_SIZE), # buf = lptsize(# lpt, LEB_SIZE), # lpt = # lpt2, buf0 = buf, err = ESUCCESS, err0 = ESUCCESS, lpt = lpt1, lpt0 = lpt2, n = n0, n1 = 0, n < # lpt, n ≤ # lpt, err = ESUCCESS → is-encoded(lpt, buf, n), err = ESUCCESS ∨ ⌊err⌋ ⊦ ⟪let m = ? in decode_lprops#(n * ENCODED_LPROPS_SIZE, buf; lpt[n], m; err); n := n + 1⟫ ( ( n ≤ # lpt ∧ # buf = lptsize(# lpt, LEB_SIZE) ∧ # lpt = # lpt2 ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded(lpt, buf, n))) ∧ # lpt - n < # lpt1 - n0) |
# lpt = # lpt2, # buf = lptsize(# lpt, LEB_SIZE), # buf = lptsize(# lpt2, LEB_SIZE), buf0 = buf, err = ESUCCESS, err0 = ESUCCESS, lpt = lpt1, lpt0 = lpt2, n = n0, n1 = 0, n < # lpt, n ≤ # lpt, err = ESUCCESS → is-encoded(lpt, buf, n), err = ESUCCESS ∨ ⌊err⌋ ⊦ ⟪decode_lprops#(n * ENCODED_LPROPS_SIZE, buf; lpt[n], m; err); n := n + 1⟫ ( ( n ≤ # lpt ∧ # buf = lptsize(# lpt, LEB_SIZE) ∧ # lpt = # lpt2 ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded(lpt, buf, n))) ∧ # lpt - n < # lpt1 - n0)