| m0 = LEB_SIZE ⊦ ⟪buf := mkbuf(lptsize(# lpt, m0)); let n = 0, m = ? in {err := ESUCCESS; 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))) |
m0 = LEB_SIZE ⊦ ⟪let n = 0, m = ? in {err := ESUCCESS; buf := mkbuf(lptsize(# lpt, m0)); 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)))