| avol = avol1[n, mapped(mkbuf(0))], avol0 = avol1, err = ESUCCESS, err = err0, n < # avol1, ebm-vol-inv(avol1), ebm-vol-inv(avol), is-encoded-pad(orphans0, # orphans0, buf0), # buf0 ≤ LEB_SIZE, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪ebm_avol_write#(n, 0, 0, # buf0, buf0; avol; err)⟫ ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ ebm-vol-inv(avol) ∧ id○(avol, avol0, n) ∧ (err = ESUCCESS → avol[n].mapped? ∧ is-encoded-pad(orphans0, # orphans0, avol[n].data))) |
avol = avol1[n, mapped(mkbuf(0))], n < # avol1, ebm-vol-inv(avol1), ebm-vol-inv(avol1[n, mapped(mkbuf(0))]), is-encoded-pad(orphans0, # orphans0, buf0), # buf0 ≤ LEB_SIZE ⊦ ⟪ebm_avol_write#(n, 0, 0, # buf0, buf0; avol; err0)⟫ ( (err0 = ESUCCESS ∨ ⌊err0⌋ ) ∧ ebm-vol-inv(avol) ∧ id○(avol, avol1, n) ∧ (err0 = ESUCCESS → avol[n].mapped? ∧ is-encoded-pad(orphans0, # orphans0, avol[n].data)))
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ ¬ ⌊ESUCCESS⌋ ; (s)