| buf = mkbuf(lptsize(# lpt, m0)), err = ESUCCESS, m0 = LEB_SIZE, n = 0 ⊦ ⟪while err = ESUCCESS ∧ n < # lpt do {/* (prepost-encode-lpt : invariant n ≤ # lpt ∧ # buf = lptsize(# lpt, LEB_SIZE) ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded(lpt, buf, n)) wfbound # lpt - n) */; encode_lprops#(lpt[n], n * ENCODED_LPROPS_SIZE; buf, m; err); n := n + 1}⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded(lpt, buf) ∧ # buf = lptsize(# lpt, LEB_SIZE))) |
buf = mkbuf(lptsize(# lpt, m0)), err = ESUCCESS, m0 = LEB_SIZE, n = 0 ⊦ n ≤ # lpt ∧ # buf = lptsize(# lpt, LEB_SIZE) ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded(lpt, buf, n))
# buf = lptsize(# lpt, LEB_SIZE), buf0 = mkbuf(lptsize(# lpt, m0)), err = ESUCCESS, err0 = ESUCCESS, m0 = LEB_SIZE, n = n0, n1 = 0, n < # lpt, n ≤ # lpt, err = ESUCCESS → is-encoded(lpt, buf, n), err = ESUCCESS ∨ ⌊err⌋ ⊦ ⟪encode_lprops#(lpt[n], n * ENCODED_LPROPS_SIZE; buf, m; err); n := n + 1⟫ ( (n ≤ # lpt ∧ # buf = lptsize(# lpt, LEB_SIZE) ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded(lpt, buf, n))) ∧ # lpt - n < # lpt - n0)
# buf = lptsize(# lpt, LEB_SIZE), buf0 = mkbuf(lptsize(# lpt, m0)), err0 = ESUCCESS, m0 = LEB_SIZE, n1 = 0, n ≤ # lpt, err = ESUCCESS → is-encoded(lpt, buf, n), err = ESUCCESS ∨ ⌊err⌋ ⊦ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded(lpt, buf) ∧ # buf = lptsize(# lpt, LEB_SIZE)), err = ESUCCESS ∧ n < # lpt
Used formulas: n ≤ # lpt ∧ # buf = lptsize(# lpt, LEB_SIZE) ∧ (err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → is-encoded(lpt, buf, n)), # lpt - n = # lpt - n