| persistence_io_write_lebs#(LNUM, SIZE, BUF, LEBSIZE; AVOL; ERR) {ERR := ESUCCESS; let N = 0 in while ERR = ESUCCESS ∧ N < SIZE do {/* (prepost-write-lebs : invariant N ≤ SIZE ∧ ebm-vol-inv(AVOL) ∧ # BUF = SIZE * LEB_SIZE ∧ (ERR = ESUCCESS ∨ ⌊ERR⌋ ) ∧ # AVOL = # AVOL` ∧ range=(AVOL, 0, AVOL`, 0, LNUM) ∧ range=(AVOL, LNUM + SIZE, AVOL`, LNUM + SIZE, # AVOL` - LNUM + SIZE) ∧ (ERR = ESUCCESS → lebs(AVOL, LNUM, N) = subarray(BUF, 0, N * LEB_SIZE) ∧ mapped-full?(AVOL, LNUM, N)) wfbound SIZE - N) */; ebm_avol_remap#(LNUM + N; AVOL; ERR); if ERR = ESUCCESS then ebm_avol_write#(LNUM + N, 0, N * LEBSIZE, LEBSIZE, BUF; AVOL; ERR); N := N + 1} } |